typescript - 尝试使用括号表示法访问对象属性时出现 Typescript 错误 TS1003
问题描述
在 TypeScript 中使用括号表示法引用对象属性的正确方法是什么?
在常规 JavaScript 中,我可以这样做:
returnValue(object, key) {
return object[key];
}
如果我调用returnValue({someKey: 1}, "someKey")
,函数会返回1
。
当我尝试在 TypeScript 中执行此操作时,我收到:
TS1003: Identifier expected. Name expected.
这样做的正确方法是什么?
解决方案
您可以考虑使用keyof
:
interface YourObj {
someKey: string;
someOtherKey: number;
}
function returnValue(obj: YourObj, key: keyof YourObj) {
return obj[key];
}
console.log("Object value = " + returnValue({someKey: "someValue", someOtherKey: 1}, "someKey"))
如果您调用returnValue
任何不存在的内容YourObj
以及任何未出现在YourObj