2016-04-24 7 views
1

Я хочу экспорта функцию, я назвал «импорт», как это:
Почему я не могу экспортировать функцию под названием «импорт» в ES6

export function import(foo, bar) { 
    console.log(foo + bar); 
} 

Однако по какой-то причине ES6 ЛИНТЕР жалуется, что «импорт не является допустимым идентификатором для функции» see this fiddle

Что случилось? Не могу ли я использовать функцию import в es6? как насчет экспорта?

+0

'import' является зарезервированным словом. Вы не можете использовать его как имя объявления функции. – Bergi

ответ

4

import и export являются reserved words. Вы не можете использовать их как имя объявления функции.

Вы можете, однако по-прежнему использовать их в качестве названия для экспорта - вы просто не можете объявить переменную с ним:

function _import(foo, bar) { 
    console.log(foo + bar); 
} 
export {_import as import}; 

Я рекомендовал бы против него, хотя, это затрудняет импортирования аналогично.

3

В EcmaScript есть много зарезервированных слов, которые не являются действительными в качестве идентификаторов.

http://www.ecma-international.org/ecma-262/6.0/#sec-keywords дает вам полный список слов, которые вы не можете использовать - и да, экспорт также зарезервирован.

2

Потому что есть много зарезервированных слов.

Спецификация говорит это:

Идентификатор, является ИмяИдентификатора, который не является ReservedWord.

Вот более полный список зарезервированных слов: https://mathiasbynens.be/notes/reserved-keywords.

Импорт, экспорт и многие другие.