TypeScript 类型别名和接口

TypeScript 允许将类型与使用它们的变量分开定义。

别名和接口允许在不同的 变量/对象 之间轻松共享类型。


类型别名

类型别名可以使用自定义名称(别名)定义类型。

Type Aliases can be used for primitives like string or more complex types such as objects and arrays

类型别名可用于 字符串 等基础或更复杂的类型,如 对象数组:

  1. // 尝试使用提供的别名创建一辆新的车辆
  2. type CarYear = number;
  3. type CarType = string;
  4. type CarModel = string;
  5. type Car = {
  6. year: CarYear,
  7. type: CarType,
  8. model: CarModel
  9. };
  10. const carYear: CarYear = 2001
  11. const carType: CarType = "Toyota"
  12. const carModel: CarModel = "Corolla"
  13. const car: Car = {
  14. year: carYear,
  15. type: carType,
  16. model: carModel
  17. };
  18. console.log(car);

接口

接口与类型别名类似,只是它们适用于 对象 类型:

  1. // 尝试使用下面的接口创建一个新接口
  2. interface Rectangle {
  3. height: number,
  4. width: number
  5. };
  6. const rectangle: Rectangle = {
  7. height: 20,
  8. width: 10
  9. };
  10. console.log(rectangle);

扩展接口

接口可以扩展。

扩展一个接口意味着您正在创建一个新接口,该接口具有与原始接口相同的属性,以及一些新的属性。
  1. // 尝试创建一个新的接口并扩展它,如下所示
  2. interface Rectangle {
  3. height: number,
  4. width: number
  5. }
  6. interface ColoredRectangle extends Rectangle {
  7. color: string
  8. }
  9. const coloredRectangle: ColoredRectangle = {
  10. height: 20,
  11. width: 10,
  12. color: "red"
  13. };
  14. console.log(coloredRectangle);