ts中定义的对象如何添加属性

private json_coordinate: object = {}
我在class中定义了一个空对象,想在之后的程序里面添加数据,然而当我按照js的方法添加数据的时候报错了this.json_coordinate.Page = []
image.png
刚开始学ts,想问问这个该怎么定义啊

阅读 20.7k
2 个回答

json_coordinate 里的属性完全不确定吗?

如果完全不确定又哪些属性、就像一个普通字典一样,就用索引签名好了:

// 以下写法二选一,都一样
json_coordinate: { [key: string]: any } = {};
json_coordinate: Record<string, any> = {};

如果可以确定有哪些属性,只是一开始不初始化它们(也就是可空字段),把字段声明出来好了:

json_coordinate: { Page?: any[] } = {};

P.S. 如果属性啥的特别多、写起来看着不直观,可以先定义个类型别名或接口:

type JsonCoordinate = {
    Page?: any[]
}

json_coordinate: JsonCoordinate = {};

你是想要这样的??

class Lei {
  private data={aa:123}
  public data2:{[x:string]:any}={bb:"456"}
}

let lei=new Lei()
lei.data2={...lei.data2,cc:789}

console.log(lei)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏