导出导入的简写

srp*_*rph 5 javascript ecmascript-6

我一直想用 BabelJS 来做这件事,但是我不确定 Babel 或规范目前是否支持它。

鉴于Outer.js

export default function() { }
Run Code Online (Sandbox Code Playgroud)

下面的例子不起作用。

export Outer from './Outer'
Run Code Online (Sandbox Code Playgroud)

使用 CommonJS 模块,这可以很容易地写成

exports.x = require('./x');
Run Code Online (Sandbox Code Playgroud)

ale*_*ods 4

截至2015 年 4 月 3 日BabelJS团队已于 3 天前发布,其中包括对他们博客文章v5.0中所述的速记的支持。

Lee Byron 的第 1 阶段附加导出语句提案完成了导入和导出语句之间的对称性,使您可以轻松地从外部模块导出命名空间和默认值,而无需修改本地范围。

导出默认值

export foo from "bar";
Run Code Online (Sandbox Code Playgroud)

相当于:

import _foo from "bar";
export { _foo as foo };
Run Code Online (Sandbox Code Playgroud)

旧答案

此导出符号

export v from "mod";
Run Code Online (Sandbox Code Playgroud)

ES6 中不支持(查看规范中支持的示例),但 ES7 中可以支持(查看此提案)。

要获得完全相同的结果,您import现在必须使用:

import Outer from './Outer';
export {Outer};
Run Code Online (Sandbox Code Playgroud)