概念
- 对对象的形状(shape)进行描述
- Duck Typing(鸭子类型):如果某个东西长得像鸭子,像鸭子一样游泳,像鸭子一样嘎嘎叫,那它就可以被看成是一只鸭子。
我们先来定义一个接口person:
interface Person {
name: string;
age: number;
}
然后定义一个变量 things,他的类型是Person。这样,我们就约束了 viking 的形状必须和接口 Person 一致。
let viking: Person ={
name: 'viking',
age: 20
}
可选属性:
如果有时候我们希望不要完全匹配一个形状,那么可以用可选属性:(在属性后加?,表示可选属性)
interface Person {
name: string;
age?: number;
}
let viking: Person = {
name: 'Viking'
}
只读属性:
有时候我们希望对象中的一些字段只能在创建的时候被赋值,那么可以使用 readonly 定义只读属性
interface Person {
readonly id: number;
name: string;
age?: number;
}
viking.id = 123456
这样便会有报错提示:显示id为只读属性,无法改变赋值