相关疑难解决方法(0)

在 TypeScript 中使用符号作为对象键类型

我试图用符号定义一个对象作为键类型,因为 MDN 说:

符号值可用作对象属性的标识符 [...]

但是使用它作为键属性的类型:

type obj = {
    [key: symbol | string]: string
}
Run Code Online (Sandbox Code Playgroud)

导致以下错误:

TS1023:索引签名参数类型必须是“字符串”或“数字”。

甚至可以用作索引类型。我正在使用最新的打字稿版本 ( v3.7.2),我发现了相关问题:

我还查看了打字稿符号文档,但它们只显示了如何将其用作值,而不是类型。

例子:

const obj = {} as {
    [key: number | symbol]: string // Won't work
};

const sym = Symbol('My symbol');
obj[sym] = 'Hi';
Run Code Online (Sandbox Code Playgroud)

Microsoft/TypeScript 上的问题

打开功能请求

javascript types symbols typescript

30
推荐指数
2
解决办法
9023
查看次数

标签 统计

javascript ×1

symbols ×1

types ×1

typescript ×1