TS接口可以理解为:一种契约。
- 可选属性,赋值时不完全匹配
interface Car {
type: string;
color?: string;
}
const car: Car = {
type: 'SUV',
};
// 使用 “?:”来表示该属性为可选属性,即使在声明变量时无该属性,也不会出现报错提示
- 任意属性
interface Car {
type: string;
[proName: string]: any;
}
const car: Car = {
type: 'SUV',
color1: 'red',
color: '#fff',
};
- 只读属性,只在创建时赋值
interface Car {
type: string;
}
const car: Car = {
readonly type: 'SUV',
};
car.type = '跑车';
// 报错
- 泛类型定义
返回的值有可能是(null,对象,数组)多个类型时,使用泛类型来定义接口
interface IRes <T>{
id: string;
name: string;
data: T;
}