export class Foo{
someproperty: string;
}
我试图理解为什么在尝试访问动态对象属性时我可以按照我在此处的一个答案中看到的那样执行以下操作:
let fooObj: foo = someObj['someproperty'];
但是通过这样做,我得到了一个错误。
let fooObj: foo = someObj.someproperty;
我试图理解为什么第一种方法适用于访问/分配给动态对象。
错误:
“某些属性在类型上不存在”
这里之前问过的问题,Angelo R 的回答是我感兴趣的。
最佳答案
这只是 TypeScript 中的约定,为了方便起见。如果你想访问对象类型签名中未定义的任意属性,你可以使用 ["foo"]
符号,类型检查器不会尝试强制实例您正在访问的类型签名中包含此类属性。
关于javascript - Typescript 使用 [' ' ] 语法访问动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43740513/