一、TS 接口继承写法
在 TypeScript 中,接口是一种非常重要的概念,可以用来描述对象的形状或类的结构。接口继承是指一个接口可以继承另一个接口或多个接口的成员。
接口继承语法如下:
interface ChildInterface extends ParentInterface { // 子接口 extends 父接口的成员 ... }
举个例子:
interface Animal { age: number; eat(): void; } interface Person extends Animal { name: string; sayHi(): void; }
上述代码中,Person 接口继承了 Animal 接口。
二、TS type 继承
除了接口继承,TypeScript 中还支持通过 type 关键字进行类型的继承。
type 关键字定义的类型别名可以继承其他类型、联合类型或交叉类型。
type A = { a: number }; type B = A & { b: number };
上述代码中,B 类型继承了 A 类型,是 A 类型与带有 b 属性的对象的交叉类型。
三、TS 接口继承类
在 TypeScript 中,接口还可以继承类,这个类可以是一个普通类,也可以是一个抽象类。
class Animal { age: number; eat(): void {} } interface Person extends Animal { name: string; sayHi(): void; }
上述代码中,Person 接口继承了 Animal 类,可以理解为实现了 Animal 类的所有成员。
四、TS 定义接口
在 TypeScript 中,接口的定义可以为对象和函数定义。下面给出对象的定义:
interface Foo { propA: number; propB: string; }
上述代码中,Foo 接口定义了对象的形状,对象必须包含 propA 属性和 propB 属性。
五、TS 接口继承多个接口
接口之间也可以多重继承,即一个接口可以同时继承多个接口,语法如下:
interface ChildInterface extends ParentInterface1, ParentInterface2 { // 子接口同时 extends 多个父接口的成员 ... }
举个例子:
interface Person { name: string; sayHi(): void; } interface WorkMan { company: string; work(): void; } interface Employee extends Person, WorkMan { dept: string; work(): void; }
上述代码中,Employee 接口同时继承了 Person 和 WorkMan 接口,实现了所有继承接口的成员。
六、TS 类型继承
TypeScript 还支持类型的继承,类型继承可以实现对多个类型的复合。语法如下:
type ChildType = ParentType1 & ParentType2 & ...
举个例子:
type PersonType = { name: string; age: number; } type InfoType = { sex: string; address: string; } type EmployeeType = PersonType & InfoType;
上述代码中,EmployeeType 类型继承了 PersonType 和 InfoType 的成员,是 PersonType 和 InfoType 的交叉类型。
七、接口继承了 object 类吗
在 TypeScript 中,如果一个接口不显式继承自其它接口,那么它默认会继承自 object 类型,object 是 TypeScript 中表示非特定类型的类型,即表示所有对象类型的基础。
interface Foo { propA: number; propB: string; } const foo: Foo = {}; // TypeScript 报错:缺少属性 propA 和 propB。
上述代码中,Foo 接口没有继承其它接口,因此默认继承自 object 类型。
八、TS 继承抽象类
除了可以继承类和接口,TypeScript 还支持继承抽象类。
抽象类是用来定义标准的类,它不能被实例化,只能用来被子类继承。抽象类可以包含抽象方法,这些方法只有定义,没有实现。
abstract class Animal { abstract eat(): void; } interface Person extends Animal { name: string; }
上述代码中,Person 接口继承了 Animal 抽象类,实现了 eat 方法。
九、TS 接口是什么
TypeScript 中的接口是用来定义对象和函数的规范,接口定义了对象和函数应该拥有的属性和方法。一个对象或函数如果符合接口的规范,就可以被认为是实现了这个接口。
十、TS 继承多个接口
在 TypeScript 中,接口允许继承多个接口,通过这种方式可以实现接口的复用和拓展。当一个接口继承了多个接口时,它就会包含父接口的所有成员。
举个例子:
interface Person { name: string; sayHi(): void; } interface WorkMan { company: string; work(): void; } interface Employee extends Person, WorkMan { dept: string; work(): void; }
上述代码中,Employee 接口继承了 Person 和 WorkMan 接口,实现了所有继承接口的成员。