Javascript如何使对象允许任何键

时间:2018-10-22 13:05:05

标签: javascript object initialization

在Angular(打字稿)中,说我启动了此变量:

myVar = {}

然后我进行调用,将该变量分配给更大的对象:

... this.myVar = response

然后,当我要访问此已更改对象上的某些内容时,会不断收到错误消息,提示键不存在。例如,使用此代码this.myVar.Name将引发错误Property "Name" does not exist on type '{}'。我该如何绕过此错误?

类似myVar: any的东西可以完成工作,但是我仍然想至少将它声明为带有= {}这样的对象。

我正在寻找类似{any}any{}

的东西

4 个答案:

答案 0 :(得分:1)

这是typescript types的问题,为此,我建议在您的问题中为打字稿添加标签。我认为您可以使用object type,它确实可以满足您的要求,即接受任何类型的密钥。因此代码为:const yourVar: object = {};

答案 1 :(得分:1)

以下应该可以工作

let myVar: any = {};

答案 2 :(得分:0)

只需使其类型为any

myVar: any;

或更优,您可以创建一个界面来表示myVar的类型,假设您有模式Product,其属性为:name, price, description etc...和然后myVar: Product

答案 3 :(得分:0)

您可以使用可变键将其键入为对象:

 let myVar: { [key: string]: any } = {};

那样,您可以为对象添加更多细粒度的类型。