TypeScript 接口(interface)

205 阅读1分钟

TypeScript 的核心原则就是对值所具有的类型进行类型检查。而接口的作用就是为这些类型进行命名和定义契约。

下面是一个例子:

interface animals {  type: string;  name: string;}function printAnimals(animals: animals) {  console.log(animals.type);}printAnimals({type: "human", name: 'human'});

只要保证属性存在且类型正确,类型检查起不会检查属性顺序。

  • 可选属性
在类型后面加一个?,即是代表该属性可选。将上面的例子改写

interface animals {  type: string;  name: string;
  age?: number;}function printAnimals(animals: animals) {  console.log(animals.type);}printAnimals({type: "human", name: 'human'});

可选属性的好处是可以预定义可能存在的属性。

  • 只读属性

在属性名称前加上readonly,表示该属性为只读。只允许初始化,之后不能修改。

interface animals {  type: string;  name: string;  age?: number;  readonly size: string;}function printAnimals(animals: animals) {  console.log(animals.type);}printAnimals({type: "human", name: 'human', size: 'big'});

  • 函数类型
接口中除了可以描述简单属性的类型,还可以描述函数类型

interface demo {
  (a: string,b: string): boolean;
}

let mySearch:demo = function(a: string, b: string) {
  let result =a.search(b);
  return result > -1;
}

会逐个检查函数中参数类型。


  • 接口继承
接口也可以继承。这可以从将一个接口里面的成员复制到另一个接口。

interface animals {
    name: string;
}

interface human extends animals {
   size: string;
}

let huamn = <human>{};
human.color = "blue";
human.sideLength = 10;