在ts里面定义对象的方式也有很多。
普通定义
let obj1:{} = {}
// obj1.name = 'fufu' 报错,只能定义为空对象且不能修改
// 但是可以在赋初始值的时候直接添加属性,这是ts在类型推断时,它会宽容地匹配对象的结构。
let obj2:{} = {name: 'fufu'}
// obj2.name = 'dandan' 依旧报错,不能修改
let obj3:{name: string} = {name: 'fufu'}
obj3.name = 'dandan'
// obj2.age =20 报错,只能修改定义的属性
let obj4:object = {}
// obj4.name = 'fufu' 报错,只能定义为空对象且不能修改
// 但是可以在赋初始值的时候直接添加属性,这是ts在类型推断时,它会宽容地匹配对象的结构。
let obj5:object = {name: 'fufu'}
// obj5.name = 'dandan' 依旧报错,不能修改
let obj6:object = {name: 'fufu'}
接口定义
定义对象最常用的方式还是使用接口
interface User {
name: string,
age: number
}
let personL: User = {name: 'fufu', age: 20}
定义数组对象
interface Tree {
children: {
[index: number]: any
}
}
let treeList: Tree = { children: [{ name: 'fufu' }] }