TypeScript对象的类型——接口

接口简单的例子

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'
};

需要注意的是一旦定义了任意属性,那么确定属性和可选属性都必须是它的子属性
并且下面可以添加任意数量的属性

TypeScript对象的类型——接口_第1张图片
一旦定义了任意属性,那么确定属性和可选属性都必须是它的子属性.jpg

只读属性
那么可以用 readonly 定义只读属性,需要注意只读的约束存在于第一次给对象赋值的时候,而不是第一次给只读属性赋值的时候
如果给对象赋值的时候没有添加id,或再次赋值都是报错

TypeScript对象的类型——接口_第2张图片
只读属性约束存在于第一次给对象赋值的时候.jpg

你可能感兴趣的:(TypeScript对象的类型——接口)