在 JavaScript 中导入、重命名和导出函数?

Eva*_*nss 4 javascript

使用 JavaScript 导入命名导出、重命名并再次导出的最短方法是什么?

此代码有效,但感觉比应有的更冗长

import { mock as myFunctionMock } from 'context/myFunction';
export const myFunction = myFunctionMock;
Run Code Online (Sandbox Code Playgroud)

JDB*_*JDB 7

您可以像这样组合导入和导出:

export { mock as myFunctionMock } from 'context/myFunction';
Run Code Online (Sandbox Code Playgroud)

查看MDN 文档

请注意,您实际上无法在代码文件中使用 myFunctionMock,因为您尚未导入它。在模块中既mock不会也myFunctionMock不会被定义。

当您构建将由其他模块或最终用户使用的库时,这是一个有用的速记。

举例来说,如果你有一个utils图书馆,你想出口,但你想在几个较小的文件整理util的功能,如stringUtilsobjectUtilsdataUtils,等,你可以导出内这些模块的内容utils模块来创建一个单一的,单片接入点:

stringUtils.js

export function toLower(){}

export function toUpper(){}
Run Code Online (Sandbox Code Playgroud)

objectUtils.js

export function propertyMap(){}
Run Code Online (Sandbox Code Playgroud)

实用程序.js

export {
    toLower as stringToLower,
    toUpper as stringToUpper,
} from "stringUtils.js";
export {
    propertyMap as objectPropertyMap
} from "objectUtils.js";
Run Code Online (Sandbox Code Playgroud)

我一般不会推荐这种方法用于内部代码,因为在某些情况下它会使您的依赖树有点不稳定。但是,在您想从通用接口导入但实现依赖于构建(prod vs dev、web vs node等)的情况下,它可能非常有用