在导入语句中解构赋值



根据这个来源和在某个项目中看到过这种用法的模糊记忆,我很好奇是否有人能够做到以下:

import {map: { series }} from 'contra'

如本解构赋值概述所述:

ES6中的import语句的行为类似于析构,但是它没有重要的是要注意,它实际上并不是解构。

似乎导入的工作方式有点不同,也许人们不能期望完全相同的行为,但我还无法验证这一状态。我想做的是官方ECMAScript 6/7规范的一部分吗?

在试图回答这个问题时,请包括(或链接)规范中澄清这个问题的部分

规范的相关部分在这里。

一个ImportDeclaration

import ImportClause FromClause ;

如果你检查ImportClause,你会看到它只是熟悉的* as Foo,或DefaultImport,或{ImportSpecifier, ...}等,其中ImportSpecifier是一个ImportBinding,这反过来又是一个 bindingidentifier ,这只是一个普通的旧的标识符

MDN条目介于误导和完全错误之间。它应该说(现在确实说了):

ES6中的import语句表面上类似于解构,但实际上是完全不相关的。

这些天我发现越来越多的不正确和误导的信息在MDN。对此应该持保留态度。权威参考为规范。

只能在分配变量时使用解构赋值。导入是完全不同的东西,你不能对它们使用解构赋值。

你可以用直接调用require()来代替解构赋值(假设你正在使用Node.js或RequireJS):

const {map: { series }} = require('contra')

相关内容

  • 没有找到相关文章

最新更新