是对象属性的一种规范

  1. interface MyInterface {
  2. property: type; // 普通属性
  3. property?: type; // 可选属性
  4. readonly property: type; // 只读属性
  5. }
  • 属性可以是数字,当属性是0开始的连续数字时,改接口可以给数组使用
  • 属性分类
    • 普通属性:赋值对象中必须存在的
    • 可选属性:赋值对象中可有可无的
    • 只读属性:只能访问不能修改的属性

多余属性

当赋值对象的属性数量多于接口时,也会报错,解决方式:

  1. 类型断言
  2. 索引签名(可索引类型)
  3. 类型兼容性:通过另一个变量赋值时,只要对象中包含接口中的属性就可以

示例

interface UserInfo = {                  
  name: string;      
  age?: number;          
  readonly sex: string;   
}

const nameInfo: UserInfo = { 
  name: 'aaa', 
  sex: 'man' 
}    

function getName ( { name }: UserInfo ): string {    // 配合结构使用
    return userInfo.name
}