2016-01-08 28 views
3

我看到一段代码发布在聊天频道。在他的代码的最后是ES6的出口和花括号

export {UserInformation}; 

有一些组说,语法是错误的。有些人说只要变量存在就没问题。

那么哪一组是对的?这是我第一次看到这种语法。我从来没有见过大括号出口。我只在导入时使用它们。像这样

import {method} from 'someModule'; 

如果我写的话,我会写它作为

export default UserInformation; 

我不想亵渎我的大脑与错误信息。让我知道哪个导出是正确的。

+0

你为什么不试试呢?或者,您也可以通过https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export阅读文档。给出的第一个例子是'export {name1,name2,...,nameN};'。 –

回答

11

语法无误。这

export {UserInformation}; 

是简写

export {UserInformation as UserInformation}; 

这就好比做

export const UserInformation = {}; 

当你定义UserInformation

它能够从一个模块在它的定义不同的地方出口的东西(为便于阅读,例如)是非常有用的。

在这种情况下,你会导入UserInformation这样

import {UserInformation} from 'UserInformation.js'; 

请注意,export default UserInformation;等效于此。在这种情况下,你使UserInformation成为默认模块导出。在这种情况下,进口UserInformation,你会怎么做:

import UserInformation from 'UserInformation.js'; 

这是简写形式,

import {default as UserInformation} from 'UserInformation.js'; 

This blog post是关于主题一个很好的阅读。

+0

非常感谢Esteban! – devwannabe

+2

您从'UserInformation.js'中导入UserInformation的第一个示例;'是错误的;它应该是'UserInformation.js';'输入{UserInformation}。你的第二个导入默认的例子很好,但通常会写成'从UserInformation.js'中导入UserInformation。 –

+2

@torazaburo感谢您接触到,只是更新了答案。 OP请注意torazaburo的评论和答案的更新,这是一个很大的错误。 – Esteban