TS2538:类型“唯一符号”不能用作索引类型
Posted
技术标签:
【中文标题】TS2538:类型“唯一符号”不能用作索引类型【英文标题】:TS2538: Type 'unique symbol' cannot be used as an index type 【发布时间】:2019-04-23 14:04:10 【问题描述】:我有这个:
const symbols =
typeMap: Symbol('type.map')
interface LangMap
[key: string]: string | true,
golang: string,
typescript: string,
java: string,
swift: string
export const setTypeMap = function(v: LangMap) : LangMap
v[symbols.typeMap] = true;
return v;
;
我收到此错误:
。
有谁知道这个错误是关于什么的?我在 tsc 版本 3.1.6。
【问题讨论】:
[key: string]
?
我试过这个[key: string | symbol]
也没有用
不幸的是,这个问题似乎仍然很突出(实际上我是被你在 GitHub 上的评论引导到这里的)。我刚刚联系了一些 TS 维护人员,看看是否有什么可以做的。
有人有这方面的更新吗?
github.com/microsoft/TypeScript/issues/1863@vvMINOvv
【参考方案1】:
我可怜的解决方法:
const bar: Record<any, string> = ;
const FOO = Symbol('foo');
// eslint-disable-next-line @typescript-eslint/no-explicit-any
bar[FOO as any] = 'sad';
【讨论】:
以上是关于TS2538:类型“唯一符号”不能用作索引类型的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript - ts(7053):元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引