根据这个source和模糊记忆在某个项目中看到过这种用法,我很好奇是否有人能够做到以下几点:
import {map: { series }} from 'contra'
正如destructuring assignment概述所述:
ES6中的import语句与destructuring的行为类似,但它 重要的是要注意它实际上并没有解构。
看来导入工作有点不同,也许人们不能指望相同的行为,但我还没有能够验证其状态。我正在尝试做官方ECMAScript 6/7规范的一部分吗?
在尝试回答此问题时,请包含(或链接)说明此问题的规范部分。
答案 0 :(得分:4)
规范的相关部分是here。
ImportDeclaration 是
import
ImportClause FromClause ;
如果您检查 ImportClause ,您会看到它只是熟悉的* as Foo
,DefaultImport
或{ImportSpecifier, ...}
等,其中 ImportSpecifier 是一个 ImportBinding ,它又是一个 BindingIdentifer ,它只是一个普通的标识符。
MDN条目介于误导和完全错误之间。应该说(现在确实如此):
ES6中的import语句与解构非常相似,但实际上完全不相关。
这些天我在MDN中发现越来越多的错误和误导性信息。应该用一粒盐。权威参考是规范。
答案 1 :(得分:0)
只有在分配变量时,才能使用解构分配。进口是完全不同的东西,你不能使用它们的解构赋值。
您可以使用直接require()
调用进行解构赋值(假设您使用的是Node.js或RequireJS):
const {map: { series }} = require('contra')