🖇️对象类型
要定义对象类型:
const obj = {
name: "Job",
age: 20,
};当你通过对象字面量创建一个对象时,通常 TypeScript 可以自行推导出类型。
我们也可以指定对象的类型,如果我们想要为一个对象设置类型注解,通常是使用interface来声明,例如:
interface Obj {
name: string
age: number
}
const obj: Obj = {
name: "Job",
age: 20,
};
// Property 'gender' does not exist on type 'Obj'.
obj.gender = "男"在这种情况下,该对象只存在两个属性name和age,动态增加属性操作会引起编译器报错。
当然也可以用类型别名来声明,它与interface没有任何区别:
作为函数参数使用
接口(interface)
类型接口和来类型别名非常类似,在大部分时候,可以任意选择使用。
除了使用extends关键字类继承外,还支持对已经存在的接口添加新属性:
接口名是允许重复存在的,TypeScript 最终会对其进行合并操作。但是类型别名是不能重复
属性修饰符
对象类型中的每个属性都可以指定几件事:类型、属性是否可更改以及是否是必选。
可选属性
通过在属性名末尾添加?将该属性标记为可选属性:
这有帮助吗?