Avatar ·

TypeScript错误:没有类型为'string'的参数的索引签名——如何修复?

你好!我是TypeScript新手,遇到了一个无法解决的问题。我有一个简单的对象,键是字符串,但当我尝试通过变量访问它时,TypeScript报错: ``` No index signature with a parameter of type 'string' was found on type '{ "A": string; }' ``` 这是我的代码: ```typescript const myObj = { "A": "Hello" }; const key = "A"; console.log(myObj[key]); // 错误! ``` 我明白key的类型是`string`,而TypeScript期望的是具体的字面量`"A"`。但如果键来自外部源(例如API或用户输入)呢?我无法预先知道所有可能的键。 我尝试过使用`key as keyof typeof myObj`,但这看起来像是一个临时解决方案。有没有更正确的方法来解决这个问题?如何正确地类型化对象,以便可以通过字符串键访问它们,同时保持类型安全? 提前感谢你的帮助! <<>>

错误原因