1. “在 TypeScript 中,咱们使用接口(Interfaces)来定义对象的类型。”
2. “在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动须要由类(classes)去实现(implements)” code
interface Person { name: string; age: number; } let tom:Person { name: 'tom', age: 18 }
变量tom是接口Person数据类型,则tom的全部属性必须与Person相同,不管是属性名仍是属性值的数据类型,不能多也不能少必须彻底一致对象
3. 可选属性 接口
interface Person { name: string; age?: number; } let tom:Person { name: 'tom' }
可选属性的含义是该属性能够不存在,但仍然不容许添加不存在的属性ip
4. 任意属性 string
接口中一旦定义了任意属性,那么接口中的可选属性和肯定属性的必须是任意属性的子属性
interface Person { name: string; age?: number; [propName:string]: any; } // A. let tom:Person { name: 'tom', gender: 'male' } // B. let tom:Person { name: 'tom', age: 12, gender: 'male' }
B会报错,由于任意属性gender是string类型, number 不是 string 的子属性,因此会报错class
5. 只读属性 变量
只读属性是只该字段只在建立的时候被赋值,它的约束力在于第一次给对象赋值的时候,并不是是第一次给只读属性赋值的时候
interface Person { name: string; readonly age: number; gender?: string; } let tom:Person { name: 'tom', age: 12, gender: 'male' } tom.age = 15; // 报错 // age属性只能在对象赋值时赋值。 let tom:Person { name: 'tom' } // 错 age为肯定属性,赋值时必须包含此属性 tom.age = 12; // 错,age为只读属性,只有第一次对象赋值时才能赋值