接口简单的例子
interface Person{
name: string;
age: number;
}
let tom: Person = {
name : 'tom',
age: 18
};
//语法注意接口赋值的时候是,隔开
//在调用的时候变量的形状需要一致否则会报错。
可选属性
interface Person{
name: string;
**age?: number;**
}
let tom: Person = {
name : 'tom',
//age: 18
};
//此时接口中age变量是可选属性,age可以不赋值其它变量形状需要一致
任意属性
有时候我们希望一个接口允许有任意的属性,可以使用如下方式:
interface Person {
name: string;
age?: number;
[propName: string]: any;
}
let tom: Person = {
name: 'Tom',
gender: 'male'
};
需要注意的是一旦定义了任意属性,那么确定属性和可选属性都必须是它的子属性
并且下面可以添加任意数量的属性
只读属性
那么可以用 readonly 定义只读属性,需要注意只读的约束存在于第一次给对象赋值的时候,而不是第一次给只读属性赋值的时候
如果给对象赋值的时候没有添加id,或再次赋值都是报错