接口类型

发布时间 2023-12-12 22:48:23作者: 前端自信逐梦者

接口

1.接口继承(extends)

如果两个接口之间有相同的属性和方法,可以将公共的属性和方法抽离出来,通过继承来复用
interface Point1D {
  x: number;
}
interface Point2D extends Point1D {
  y: number;
}
interface Point3D extends Point2D,Point1D {
  z: number;
}
let point3d: Point3D = {
  x: 1,
  y: 2,
  z: 3,
};
// 当然,一个接口也可以继承多个接口,创建出多个接口的合成接口。
interface A extends B, C, D {}

2.可选属性 (?)

interface SquareConfig {
  color?: string;
  width?: number;
}

3.只读属性

// 一些对象属性只能在对象刚刚创建的时候修改其值。 你可以在属性名前用 readonly来指定只读属性
interface Point {
  readonly x: number;
  readonly y: number;
}
let p1: Point = { x: 10, y: 20 };
p1.x = 5; // 报错!
扩展: ReadonlyArray<T>类型
// 确保数组创建后再也不能被修改
let ro: ReadonlyArray<number> = [1, 2, 3, 4];
ro[0] = 12; // 报错!