接口是对 JavaScript 本身的随意性进行约束,通过定义一个接口,约定了变量、类、函数等应该按照什么样的格式进行声明,实现多人合作的一致性。TypeScript 编译器依赖接口用于类型检查,最终编译为 JavaScript 后,接口将会被移除。
一.可选属性
interface Selectable {
name?: string;
age: number;
}
let s: Selectable = {
age: 12
}
带有可选属性的接口与普通的接口定义差不多,只是在可选属性名字定义的后面加一个 ?
符号。
二.只读属性
一些对象属性只能在对象刚刚创建的时候修改其值。你可以在属性名前用 readonly 来指定只读属性
interface ReadOnly {
readonly name: string;
age: number;
}
var r: ReadOnly = {
name: "逍遥的码农",
age: 18,
};
r.name = "逍遥"; //无法为“name”赋值,因为它是只读属性。
三. 任意属性
有时候我们希望接口允许有任意的属性,可以用 []
将属性包裹起来:
interface AtWill {
name: string;
age: number;
[props: string]: any;
}
var a: AtWill = {
name: "逍遥的码农",
age: 18,
work: "cv", //任意属性
}