ts——类与接口

我们已经知道,可以使用接口来定义对象的类型

今天主要来介绍接口对类的一部分进行抽象

类实现接口

实现是面向对象中的一个重要概念,一般来讲,一个类只能继承自另一个类,有时候不同类之间会有一些共同的特性,这个时候就可以把共性提取成接口。

举例来说,门是一个类,防盗门是门的子类。如果防盗门有一个报警器的功能,我们可以简单的给防盗门添加一个报警方法。这时候如果有另一个类,车,也有报警器的功能,就可以考虑把报警器提取出来,作为一个接口,防盗门和车都去实现它:

interface Alarm {
    alert(): void;
}

class Door {
}

class SecurityDoor extends Door implements Alarm {
    alert() {
        console.log('SecurityDoor alert');
    }
}

class Car implements Alarm {
    alert() {
        console.log('Car alert');
    }
}

接口与接口之间的继承

interface Alarm {
    alert(): void;
}

interface LightableAlarm extends Alarm {
    lightOn(): void;
    lightOff(): void;
}

可以看出LightableAlarm继承了Alarm,拥有继承来的alter方法,也有两个新方法。

接口继承类

在常见的面向对象语言中,接口是不能继承类的,但在ts中是可以的

class Num {
    x: number;
    y: number;
    constructor(x: number, y: number) {
        this.x = x;
        this.y = y;
    }
}

interface NumIn extends Point {
    z: number;
}

let NumIn: NumIn = {x: 1, y: 2, z: 3};

在我们创建Num类时,除了创建了一个名为Num的类之外,同时也创建了一个名为Num的类型。

可以把Num当成一个类在用,也可以当成一个类型使用。

类与接口 · TypeScript 入门教程从 JavaScript 程序员的角度总结思考,循序渐进的理解 TypeScript。http://ts.xcatliu.com/advanced/class-and-interfaces.html

你可能感兴趣的:(ts,javascript,开发语言,ecmascript)