接口是对 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", //任意属性
- }