簡體   English   中英

導入,重命名和導出JavaScript中的函數?

[英]Import, rename, and export a function in JavaScript?

使用JavaScript,導入命名導出,重命名並再次導出的最短方法是什么?

該代碼有效,但感覺比應有的冗長

import { mock as myFunctionMock } from 'context/myFunction';
export const myFunction = myFunctionMock;

您可以像這樣組合導入和導出:

export { mock as myFunctionMock } from 'context/myFunction';

查看MDN文件

請注意,由於尚未導入代碼文件,因此實際上將無法使用 myFunctionMock 模塊中都不會定義mockmyFunctionMock

當您要構建供其他模塊或最終用戶使用的庫時,這是一個有用的快捷方式。

例如,如果您有要導出的utils庫,但想要跨多個較小的文件(例如stringUtilsobjectUtilsdataUtils等)組織util函數,則可以在utils模塊中導出這些模塊的內容創建單個整體訪問點:

stringUtils.js

export function toLower(){}

export function toUpper(){}

objectUtils.js

export function propertyMap(){}

utils.js

export {
    toLower as stringToLower,
    toUpper as stringToUpper,
} from "stringUtils.js";
export {
    propertyMap as objectPropertyMap
} from "objectUtils.js";

我一般不會為內部代碼推薦這種方法,因為在某些情況下,它會使您的依賴樹變得有些古怪。 但是,在要從公共接口導入但實現取決於構建(prod vs dev,web vs node等)的情況下,它可能非常有用。

import { mock as myFunction } from 'context/myFunction';
export { myFunction };

在您的原始出口商中,執行以下操作:

module.exports = { mock: function () {...}}

導入時,請執行以下操作:

const myFunctionMock = require('file path of exporter');

然后重新導出到同一文件中:

module.exports = {renamedMock: myFunctionMock};

現在,對mock任何更改都將傳播到引用它的其他模塊(注意,簡而言之,這是node.js)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM