[英]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
。 在此模塊中都不會定義mock
或myFunctionMock
。
當您要構建供其他模塊或最終用戶使用的庫時,這是一個有用的快捷方式。
例如,如果您有要導出的utils
庫,但想要跨多個較小的文件(例如stringUtils
, objectUtils
, dataUtils
等)組織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.