- 此问题在此处已有答案**:
The error of 'Duplicate string index signature' at Reactjs with Typescript(2个答案)
昨天关门了。
社区正在审查是否从昨天开始重新讨论这个问题。
- 不是重复项。链接的答案没有解释为什么此错误出现在. ts文件中,而没有出现在. d.ts文件中。**
我在.ts
文件中声明了一个类型:
export type ErrorMsg = {
[min: string]: string
[max: string]: string
[differentFrom: string]: string
}
我不明白为什么TypeScript在这里抱怨
TS2374: Duplicate index signature for type 'string'.
我猜TS建议将其简化为如下形式:
export type ErrorMsg = {
[index: string]: string
}
但是如果我不想允许 * any * string索引-我只想允许这3个属性呢?
另外,当我在. d.ts文件中声明相同的ErrorMsg
类型时,它不会抛出这个错误,这更让人困惑。我读过"*. d. ts文件中允许的任何内容也可能出现在 *. ts文件中",但这里似乎不是这样。
当我将其更改为Interface或Type alias时,我尝试访问一个元素:
No index signature with a parameter of type 'string' was found on type 'ErrorMsg'
1条答案
按热度按时间ccrfmcuu1#
定义已知属性的正确方法类似于在对象文本中定义属性的方法:
一个显著的区别是分号是允许的,也是可选的。
请参见手册中的object types。