三(五)ts非基础类型(对象)

在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' }] }

猜你喜欢

转载自blog.csdn.net/qq_44473483/article/details/134945194