9

我有这个:

常量符号={typeMap:符号('type.map')}接口LangMap{[key:string]:string | true,golang:字符串,typescript:字符串,java:字符串,swift:字符串}export const setTypeMap=函数(v:LangMap):LangMap{v[symbols.typeMap]=真;返回v;};

我得到这个错误:

TS2538:类型“唯一符号”不能用作索引类型。

在此处输入图像描述

有人知道那个错误是怎么回事吗?我在tsc版本上3.1.6.

5
  • [键:字符串]? 评论 2018年11月21日3:01
  • 1
    我试过这个[键:字符串|符号]也没用 评论 2018年11月21日3:04
  • 5
    不幸的是,这个问题似乎仍然悬而未决(实际上,我是由您在GitHub上的评论引导到这里的)。我刚刚联系了一些TS维护人员,看看是否有什么可以做的。 评论 2018年11月21日6:26
  • 1
    有人对此有最新消息吗? 评论 2019年11月12日17:25
  • 1
    github.com/microsoft/TypeScript/issues/1863@vvMINOvv公司 评论 2020年8月8日6:08

2个答案2

重置为默认值
2

这项工作:

type SymbolObject<T extends object=记录<任意,任意>,K=T〔T的键〕>={[键:字符串|数字|符号]:K}//建议在这里使用真正的类型定义,但这很烦人。常量栏:SymbolObject={};const foo=符号(“foo”);bar[foo]=“你好!”
-1

我糟糕的解决方法:

常量栏:记录<any,字符串>={};const FOO=符号('FOO');//eslint-disable-nextline@typescript-eslint/无显式-anybar[FOO as any]=“悲伤”;

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.