【问题标题】:ES6 syntax confuse about module exportES6 语法混淆了模块导出
【发布时间】:2016-05-13 01:45:40
【问题描述】:

全部:

我对 ES6 很陌生,当我通过这篇文章学习 ES6 模块时:

http://www.2ality.com/2014/09/es6-modules-final.html

[1]

只有一行:

export { each as forEach };

我想知道是否有人能告诉我在哪里可以找到这个特定语法的用法介绍(尤其是大括号和 AS

[2]

另一个困惑是关于默认导出:

cmod.js

export default var Obj={};
Obj.hello =  function(){
    return "hello";
}

ma​​in.js

import hello from "./cmod"
console.log(hello.hello());

我想知道为什么会出现如下错误::

SyntaxError: cmod.js: Unexpected token (1:15)
> 1 | export default var Obj={};
    |                ^

但是,如果我将声明移至单独的行,例如:

var Obj = {}
export default Obj;
Obj.hello =  function(){
    return "hello";
}

那么一切正常,为什么我不能声明一个变量并导出它?

谢谢

【问题讨论】:

  • "我在哪里可以找到这个特定语法的用法介绍" 你到底是什么意思?你了解语法的作用,但不明白为什么有人要使用它吗?
  • “为什么我不能声明变量并导出它” 因为default 导出语法根本不允许这样做。做export default { hello: ... };var Obj = { ... }; export default Obj
  • @FelixKling 谢谢,“我在哪里可以找到...”,我不知道那个语法是什么意思,我读了一些 ES6 教程,但找不到像 { each as forEach },这行是否意味着进行命名导出并使用“name1 as name2 Wrap in the curl bracket”语法来进行名称别名,就像 var forEach 一样; forEach = 每个;?
  • 从你链接的页面,点5.2“你也可以用不同的名字导出东西”

标签: ecmascript-6


【解决方案1】:

[1] export { each as forEach }; 这行表示,您可以将一个或多个项目导出为具有或不具有别名的对象。

示例-1:

const MY_CONST = ...;
   function myFunc() {
    ...
}

export { MY_CONST, myFunc };

示例-2:

export { MY_CONST as THE_CONST, myFunc as theFunc };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2022-01-24
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    相关资源
    最近更新 更多