是对象属性的一种规范
interface MyInterface {
property: type; // 普通属性
property?: type; // 可选属性
readonly property: type; // 只读属性
}
- 属性可以是数字,当属性是0开始的连续数字时,改接口可以给数组使用
- 属性分类
- 普通属性:赋值对象中必须存在的
- 可选属性:赋值对象中可有可无的
- 只读属性:只能访问不能修改的属性
多余属性
当赋值对象的属性数量多于接口时,也会报错,解决方式:
- 类型断言
- 索引签名(可索引类型)
- 类型兼容性:通过另一个变量赋值时,只要对象中包含接口中的属性就可以
示例
interface UserInfo = {
name: string;
age?: number;
readonly sex: string;
}
const nameInfo: UserInfo = {
name: 'aaa',
sex: 'man'
}
function getName ( { name }: UserInfo ): string { // 配合结构使用
return userInfo.name
}