【问题标题】:TS2538: Type 'unique symbol' cannot be used as an index typeTS2538:类型“唯一符号”不能用作索引类型
【发布时间】: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;
};

我收到此错误:

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

有谁知道这个错误是关于什么的?我在 tsc 版本 3.1.6

【问题讨论】:

  • [key: string]?
  • 我试过这个[key: string | symbol]也没有用
  • 不幸的是,这个问题似乎仍然很突出(实际上我是被你在 GitHub 上的评论引导到这里的)。我刚刚联系了一些 TS 维护人员,看看是否有什么可以做的。
  • 有人有这方面的更新吗?

标签: tsc typescript3.0


【解决方案1】:

我可怜的解决方法:

const bar: Record<any, string> = {};
const FOO = Symbol('foo');

// eslint-disable-next-line @typescript-eslint/no-explicit-any
bar[FOO as any] = 'sad';

【讨论】:

    猜你喜欢
    • 2021-09-20
    • 2019-10-14
    • 2018-02-13
    • 2023-01-31
    • 1970-01-01
    • 2021-12-16
    • 2017-10-05
    • 1970-01-01
    相关资源
    最近更新 更多