TS中的接口和java还是有出入的,TS中接口可以用于对对象的形状进行描述,还可以对类的一部分行为行为进行抽象。
接口继承类
常见的面向对象语言中,接口是不能集成类的,但是在TypeScript中确实可以的(我接受不了):
|
|
为什么TypeScript会支持接口继承类呢?因为我们在声明class Point时,除了创建一个名为Point的类之外,同时创建了Point的类型(实例的类型)(该如何理解才好呢?类型其实就是接口么?)。
所以我们既可以将Point当一个类来使用(使用new Point创建它的实例),也可以将Point当做一个类型来使用(使用:Point表示参数的类型):
|
|
值得注意的是,PointInstance相比于Point,缺少了constructor方法,这是因为声明Point类时创建的Point类型是不包含构造函数的。另外,除了构造函数是不包含的,静态属性或静态方法也是不包含的(实例的类型当然不应该包括构造函数、静态属性或静态方法)。
换句话说,声明Point类时创建的Point类型只包含其中的实例属性和实例方法。