如何在 JavaScript 中为默认导入设置别名?
How can I alias a default import in JavaScript?
使用 ES6 模块,我知道我可以为命名导入设置别名:
import { foo as bar } from 'my-module';
而且我知道我可以导入默认导入:
import defaultMember from 'my-module';
我想为默认导入设置别名,我认为以下方法可行:
import defaultMember as alias from 'my-module';
但这会导致解析(语法)错误。
我如何(或我可以?)为默认导入设置别名?
defaultMember
已经 是 别名 - 它不需要是导出的 function/thing 的名称。就这样
import alias from 'my-module';
或者你可以做
import {default as alias} from 'my-module';
但这很深奥。
起源、解决方案和答案:
背景:
一个模块可以从自身导出功能或对象以供其他模块使用
模块用于:
- 代码重用
- 功能分离
- 模块化
什么是导入别名?
导入别名是您进行标准导入的地方,但不是使用导出模块预定义的名称,而是使用导入模块中定义的名称。
为什么这很重要?
你可能正在导入多个导出的模块,但导出的名称(来自不同的模块)是相同的,这会混淆 JS。
别名解决了这个问题。
多个别名编译失败的例子:
Failed to compile.
/somepath/index.js
SyntaxError: /somepath/index.js: Identifier 'Card' has already been declared (6:9)
Importing Aliases will allow you to import similarly named exports to
your module.
import { Button } from '../components/button'
import { Card } from '../components/card'
import { Card } from 'react-native-elements'
导入命名导出时(非默认):
// my-module.js
function functionName(){
console.log('Do magic!');
}
export { functionName );
在模块中导入:
import { functionName as AliasFunction} from "my-module.js"
什么是 default export?
默认导出允许我们导出单个值或为您的模块提供备用值。
对于导入默认导出:
// my-module.js
function functionName(){
console.log('Do magic!');
}
export default functionName;
解决方案
问题中提到的defaultMember
已经是别名了,你可以改成任何你喜欢的名字
现在导入导出的函数(functionName()
);
import AliasFunction from "my-module.js"
或者像这样(@Bergi 提到的):
import {default as AliasFunction} from 'my-module.js';
使用 ES6 模块,我知道我可以为命名导入设置别名:
import { foo as bar } from 'my-module';
而且我知道我可以导入默认导入:
import defaultMember from 'my-module';
我想为默认导入设置别名,我认为以下方法可行:
import defaultMember as alias from 'my-module';
但这会导致解析(语法)错误。
我如何(或我可以?)为默认导入设置别名?
defaultMember
已经 是 别名 - 它不需要是导出的 function/thing 的名称。就这样
import alias from 'my-module';
或者你可以做
import {default as alias} from 'my-module';
但这很深奥。
起源、解决方案和答案:
背景:
一个模块可以从自身导出功能或对象以供其他模块使用
模块用于:
- 代码重用
- 功能分离
- 模块化
什么是导入别名?
导入别名是您进行标准导入的地方,但不是使用导出模块预定义的名称,而是使用导入模块中定义的名称。
为什么这很重要?
你可能正在导入多个导出的模块,但导出的名称(来自不同的模块)是相同的,这会混淆 JS。 别名解决了这个问题。
多个别名编译失败的例子:
Failed to compile.
/somepath/index.js
SyntaxError: /somepath/index.js: Identifier 'Card' has already been declared (6:9)
Importing Aliases will allow you to import similarly named exports to your module.
import { Button } from '../components/button'
import { Card } from '../components/card'
import { Card } from 'react-native-elements'
导入命名导出时(非默认):
// my-module.js
function functionName(){
console.log('Do magic!');
}
export { functionName );
在模块中导入:
import { functionName as AliasFunction} from "my-module.js"
什么是 default export?
默认导出允许我们导出单个值或为您的模块提供备用值。
对于导入默认导出:
// my-module.js
function functionName(){
console.log('Do magic!');
}
export default functionName;
解决方案
问题中提到的defaultMember
已经是别名了,你可以改成任何你喜欢的名字
现在导入导出的函数(functionName()
);
import AliasFunction from "my-module.js"
或者像这样(@Bergi 提到的):
import {default as AliasFunction} from 'my-module.js';