【发布时间】:2021-03-04 08:42:57
【问题描述】:
我有这样的功能:
interface IUseTest {
settings: {
id: string
}
};
const useTest = (properties: IUseTest) => {
const { settings } = properties;
const test = (
item: {
[settings.id]: string | number, // Error here
[key: string]: any
}
): object => {
// function logic, doesn't matter
};
return {
test
};
};
我应该使用从设置对象中获得的所需键设置一个项目,但我收到了错误:
类型文字中的计算属性名称必须引用表达式 其类型是文字类型或“唯一符号”类型。
我必须做什么?
更新:有没有办法不使用界面?
更新:项目可以是这样的:{ id: 'someId' } 或 { key: 'someKey' }
更新: typescript 的版本是4.0.3
【问题讨论】:
-
您好,您能否展示一下您将如何使用该函数,即:参数
item的外观应该如何? -
@yfansong,你好,该项目应该是:
{ id: 'some-id' ...other }或{ key: 'some-key' ...other },这意味着对象可以有键id或key(id=== @987654331 @) -
所以
item参数实际上看起来像这样:{ string: any, ...rest }第一个属性名称是properties.settings.id? -
@yfansong,是的,没错
-
const 断言有效吗?
标签: reactjs typescript react-typescript