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;