2016-01-08 8 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

Спасибо тебе столько Эстебан! – devwannabe

+2

Ваш первый пример 'import UserInformation из 'UserInformation.js';' неверен; это должен быть 'import {UserInformation} из 'UserInformation.js';'. Второй пример импорта по умолчанию - это хорошо, но обычно он записывается как «импорт UserInformation из« UserInformation.js »;». –

+2

@torazaburo спасибо, что поймал это, просто обновил ответ. OP, пожалуйста, обратите внимание на комментарий torazaburo и обновление ответа, это была большая ошибка. – Esteban

Смежные вопросы