【问题标题】:ES6: destructuring an object with symbols as keysES6:以符号为键解构对象
【发布时间】:2019-05-28 23:36:12
【问题描述】:

我有一个包含符号作为键的对象。在这种情况下如何进行解构赋值?

let symbol = Symbol()
let obj = {[symbol]: ''}
let { /* how do I create a variable here, that holds the value of [symbol] property? */ } = obj

我需要知道这是否可能,我确实知道显而易见且简单的解决方法,但这不是我要问的。

UPD。有趣的是,我知道该怎么做,但是打字稿产生了错误,我认为我在 JS 中做错了。 Here's a fix 用于打字稿用户。

【问题讨论】:

    标签: javascript ecmascript-6 destructuring


    【解决方案1】:

    使用别名(参见assigning to new variable names):

    let symbol = Symbol()
    let obj = { [symbol] : 'value'}
    let { [symbol]: alias } = obj
    
    console.log(alias)

    【讨论】:

    • 有趣的是我试过了,我知道,但是由于打字稿产生了错误,我以为我做错了什么。
    • 奇怪 - typescript (docs) 支持它
    • 是的,但这种情况下没有符号。
    【解决方案2】:

    使用与构建对象相同的语法进行解构:

    let symbol = Symbol()
    let obj = {[symbol]: 'foo'}
    let { [symbol]: myValue } = obj;
    console.log(myValue);
    

    【讨论】:

      猜你喜欢
      • 2019-05-28
      • 1970-01-01
      • 2021-11-16
      • 2020-02-18
      • 2017-07-24
      • 2023-03-03
      • 2019-11-19
      • 2020-06-06
      • 1970-01-01
      相关资源
      最近更新 更多