首页 > 解决方案 > 打字稿:以符号为键解构对象

问题描述

为什么此代码会产生错误Type 'symbol' cannot be used to index type '{ [x: string]: string; }'.

let symbol = Symbol()
let obj = { [symbol] : 'value'}
let { [symbol]: alias } = obj
             // ^^^^^ the error is here

console.log(alias)

最重要的是,我该如何解决这个问题?

标签: typescriptdestructuring

解决方案


您只需要声明symbolasconst以使编译器为其推断文字类型而不是通用Symbol类型。

const symbol = Symbol()
let obj = { [symbol] : 'value'}
let { [symbol]: alias } = obj


console.log(alias)

当 typescript 推断出一个独特的符号时,这个PR可能很有用


推荐阅读