我怎样才能在Javascript中使用默认导入?
使用ES6模块,我知道我可以别名命名导入
import { foo as bar } from 'my-module';
而且我知道我可以导入默认导入
import defaultMember from 'my-module';
我想要别名的默认导入,我曾经认为下面的工作
import defaultMember as alias from 'my-module';
但是这会导致parsing(语法)错误。
我怎么能(或者我可以?)别名默认导入?
defaultMember
已经是一个别名 – 它不需要是导出的函数/东西的名称。 做就是了
import alias from 'my-module';
或者你可以做
import {default as alias} from 'my-module';
但这是相当深奥的。
首先,每当你引用一个模块的默认导入时,总是最好的。 否则,假定别名是针对模块中的特定variables和/或对象的(而不是默认的)。 因此,仅仅因为这个原因,使用以下内容:
import default as alias from 'module-source'; //Alternatively, the line below is equivalent: import {default as alias} from 'module-source';
我想指出的一个更正是,当导入默认没有别名的时候,它不叫做defaultMember,也不是其他的:default。 而且,只有(导出或导入)一个对象时,大括号是可选的。 因此,如果没有别名,您可以通过以下方式简单地导入默认模块:
import default from 'module-source';
其他注意事项:或者,另一个选项是别名整个模块,然后你可以简单地引用任何导出的对象的属性,我不认为正是你在找什么,但可能是有用的其他人。 一般来说,要使用别名,请按照以下语法:
import {object-name as alias} from 'module-source';
要为整个模块别名,请使用下面的示例,然后将导入的对象作为属性(使用点符号或者首选括弧符号)引用。 例如,假设你导出了一个名为meetsCriteria的函数和一个名为playersOnTeam的variables。
import * as Alias from 'module-source'; // Imports Whole Module As Alias Alias.meetsCriteria(); // Calls Function As A Method Of Alias Alias.playersOnTeam; // Calls Variable As A Property Of Alias
注意:以上build议都假定模块导出是通过ES6语法完成的,通过单独使用以下一种方式或使用以下组合: export default statement(s)
, named exports
,和/或in-line export keyword(s)
– 与其相应的variables/函数声明同时进行。 基本上,只有先使用export
关键字语法,才能使用import
关键字语法。 如果您使用module.exports
导出/您的模块,那么您将需要恢复使用require('module-source')
语法。 祝你好运!