为什么我不能在 ES6 中导出名为 "import" 的函数

Why can't I export a function named "import" in ES6

我想导出一个我命名为"import"的函数,如下所示:

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

但是由于某些原因 es6 linter 抱怨 "import is not a valid identifier for a function" see this fiddle

怎么了?我不能在 es6 中使用名为 import 的函数吗?出口呢?

EcmaScript 有很多保留字,作为标识符是无效的。

http://www.ecma-international.org/ecma-262/6.0/#sec-keywords 为您提供了不允许使用的单词的完整列表 - 是的,导出也被保留。

因为有很多保留字。

规范是这样说的:

An Identifier is an IdentifierName that is not a ReservedWord.

下面是更全面的 ReservedWords 列表:https://mathiasbynens.be/notes/reserved-keywords .

其中包括导入、导出和其他。

importexportreserved words。您不能将它们用作函数声明的名称。

但是您仍然可以将它们用作导出的名称 - 只是不能用它声明变量:

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

虽然我不建议这样做,但它同样会使导入复杂化。