首页 > 解决方案 > 尝试使用括号表示法访问对象属性时出现 Typescript 错误 TS1003

问题描述

在 TypeScript 中使用括号表示法引用对象属性的正确方法是什么?

在常规 JavaScript 中,我可以这样做:

returnValue(object, key) {
  return object[key];
}

如果我调用returnValue({someKey: 1}, "someKey"),函数会返回1

当我尝试在 TypeScript 中执行此操作时,我收到:

TS1003: Identifier expected. Name expected.

这样做的正确方法是什么?

标签: typescript

解决方案


您可以考虑使用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


推荐阅读