javascript - 为什么其中一些导出语句会失败?

标签 javascript

各位,

我很好奇,为什么会这样:

export default translate(['header'], { wait: true })(Component)

或者这个有效:

let NewComponent  = translate(['header'], { wait: true })(Component)
export {NewComponent}

但这不是:

export translate(['header'], { wait: true })(Component)

这也不行:

export {translate(['header'], { wait: true })(Component)} /* ERRORS */

最佳答案

供引用:Guide on exports from MDN

有两种类型的导出:命名的和默认的。

在您的无效示例中,以下导出:

export translate(['header'], { wait: true })(Component)

...不起作用,因为无法将表达式的结果标识为命名导出(您未给它命名),并且未将其标记为 default。如果您想知道在将它与设置默认值的第一个示例进行比较时有何不同,请考虑如何在导入中引用它:

// Valid example

// exporting in exports.js
export default translate(['header'], { wait: true })(Component);

// importing it another file
import translateResult from './exports.js';



// Invalid example

// exporting in exports.js
export translate(['header'], { wait: true })(Component);

// importing in another file
// since it's not named, and there is no default, it has no reference.
import ?? from './exports.js';
import { ?? } from './exports.js';

以下导出:

export {translate(['header'], { wait: true })(Component)} /* ERRORS */

...不起作用,因为它在语法上不正确。但是,如果您事先命名了该表达式的结果,它就不会抛出错误(至少不会因为导出而抛出错误):

const translateResult = translate(['header'], { wait: true })(Component);
export { translateResult }; // works

关于javascript - 为什么其中一些导出语句会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43942188/

相关文章:

javascript - polymer 2.x : Wrapping external JS library in ES6 web component

javascript - 使用 Javascript 从 Google Places 搜索 api 获取纬度和经度

javascript - 读取从 PHP-JS 返回数组的计算值

OnClick 函数的 Javascript 格式

javascript - 如何将这两个对象与 javascript 链接起来?

javascript - javascript处理xsl时的document()方法问题

Javascript:获取 2 个或多个未声明变量中的任何一个的值

javascript - jQuery:单击任意位置即可删除类,而不使用 $ ('body' ).on ('click'

javascript - 创建 "required"HTML5 输入元素的正确方法

javascript - jquery 图像验证不适用于数组