TypeScript 面试题
目录

请解释接口的继承 (Extending Interfaces) 的用法

· 约 3 分钟读完 · 第 21 / 256 章

推荐答案

在 TypeScript 中,接口可以通过继承来扩展其他接口的功能。通过继承,一个接口可以包含另一个接口的所有成员,并且可以在此基础上添加新的成员或重写现有成员。

在这个例子中,Square 接口继承了 Shape 接口,因此 Square 接口包含了 color 属性,并且还添加了 sideLength 属性。

本题详细解读

接口继承的基本语法

接口继承使用 extends 关键字,语法如下:

  • ChildInterface 是子接口,它将继承 ParentInterface 的所有成员。
  • ParentInterface 是父接口,它的所有成员都会被 ChildInterface 继承。

多重继承

TypeScript 支持接口的多重继承,即一个接口可以同时继承多个接口:

在这个例子中,Square 接口同时继承了 Shape 和 PenStroke 接口,因此 Square 包含了 color、penWidth 和 sideLength 三个属性。

重写继承的成员

在接口继承中,子接口可以重写父接口中的成员类型,但必须保持兼容性:

在这个例子中,Square 接口重写了 Shape 接口中的 color 属性,将其类型限制为 "blue" | "red"。

接口继承与类实现

接口继承也可以用于类实现接口时:

在这个例子中,MySquare 类实现了 Square 接口,因此必须包含 color 和 sideLength 属性。