1 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以只使用別名來(lái)避免命名沖突:
import {
foo,
} from './some/path';
import {
foo as bar,
} from './some/other/path';
但是,是的,大多數(shù)庫(kù)都有一個(gè)入口點(diǎn)(通常是 index.js)來(lái)導(dǎo)出子模塊的功能,而您所要做的就是不導(dǎo)出要隱藏的模塊?,F(xiàn)在,當(dāng)然,有人仍然可以通過(guò)在 node_modules 文件夾中指定路徑來(lái)直接導(dǎo)入您想要隱藏的子模塊,但是這樣做的人是 a) 愚蠢地依賴非公共 API 和 b) 可能玩得足夠高水平以避免這種錯(cuò)誤。
至于直接使用的應(yīng)用程序代碼,只需將其包裝在您從例如 git url 添加到 package.json 的庫(kù)中,或者簡(jiǎn)單地注釋代碼或更改名稱。Typescript 也可以提供幫助,如果函數(shù)具有不同的類型簽名,則無(wú)法在您所指的地方使用一個(gè)。
但歸根結(jié)底,最簡(jiǎn)單的方法是對(duì)你的開(kāi)發(fā)人員伙伴有一點(diǎn)信心:方法,方法,太多的努力去試圖防止人們犯他們不太可能犯的錯(cuò)誤。
根據(jù)評(píng)論編輯
導(dǎo)入可以像這樣命名空間:
import * as Whatever from 'some-module';
Whatever.someFn();
添加回答
舉報(bào)