export class Foo{
someproperty: string;
}
我试图理解为什么,在尝试访问动态对象属性时,我可以执行以下操作,就像我在其中一个答案中看到的那样:
let fooObj: foo = someObj['someproperty'];
但这样做会导致错误。
let fooObj: foo = someObj.someproperty;
我试图理解为什么第一种方法适用于访问/分配动态对象。
错误:
"someproperty does not exist on type"
在此之前提出的问题,Angelo R的回答是我感兴趣的。
答案 0 :(得分:3)
这只是TypeScript中的一种约定,方便使用。如果要访问未在对象的类型签名中定义的某个任意属性,可以使用["foo"]
表示法,并且类型检查器不会尝试强制您正在访问的实例具有这种属性的类型签名。