javascript - Typescript 使用 [' ' ] 语法访问动态属性

标签 javascript typescript

export class Foo{
 someproperty: string;
}

我试图理解为什么在尝试访问动态对象属性时我可以按照我在此处的一个答案中看到的那样执行以下操作:

let fooObj: foo = someObj['someproperty']; 

但是通过这样做,我得到了一个错误。

let fooObj: foo = someObj.someproperty;

我试图理解为什么第一种方法适用于访问/分配给动态对象。

错误:

“某些属性在类型上不存在”

这里之前问过的问题,Angelo R 的回答是我感兴趣的。

question

最佳答案

这只是 TypeScript 中的约定,为了方便起见。如果你想访问对象类型签名中未定义的任意属性,你可以使用 ["foo"] 符号,类型检查器不会尝试强制实例您正在访问的类型签名中包含此类属性。

关于javascript - Typescript 使用 [' ' ] 语法访问动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43740513/

相关文章:

javascript - 使用 React-Hooks,如何防止从 Array.map 创建的组件在其中一个兄弟组件更改状态时重新呈现?

javascript - 我的 Javascript cookie 在 session 时过期,而不是 30 天后

angular - 如何知道要输入字符的位置?

javascript - 如何将 Angular Material 形式包装到组件中并将它们作为表单控件元素公开给 FormGroup

javascript - TypeScript + AMD + out 参数不起作用

javascript - 邪恶的 Eval() 不向对象添加属性

javascript - 如何在javascript中将两个值检查组合成一行

json - 使用 Angular http 请求 json 文件时出现 404

javascript - 调试 Cordova 应用程序(使用 native 插件)有哪些可能性?

module - 无法从 node_modules typescript 导入 react-tap-event-plugin