第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JS 中的范圍導(dǎo)出

JS 中的范圍導(dǎo)出

蕪湖不蕪 2022-07-08 10:53:13
一旦我們export在JS. 例如,在一個(gè)名為的文件中,foo.js我們有一行說(shuō):export default foo;我們可以從我們想要的任何文件中全局導(dǎo)入它。但是,如果需要避免它怎么辦。這是一個(gè)問(wèn)題陳述:考慮這X是一個(gè)包含模塊的應(yīng)用A程序B。每個(gè)模塊都A包含B一個(gè)文件,該文件parser.js具有一些具有相同名稱的導(dǎo)出函數(shù)。假設(shè)A和B是獨(dú)立的模塊。如果A和B是獨(dú)立的模塊,原則上,模塊不應(yīng)訪問(wèn)其范圍之外的功能/功能。由于導(dǎo)出是全球可用的,在開(kāi)發(fā)過(guò)程中,一個(gè)人可以訪問(wèn)兩個(gè)parser.js文件中的功能,他/她可能會(huì)在不知不覺(jué)中使用錯(cuò)誤的代碼。有沒(méi)有辦法定義一個(gè)范圍,導(dǎo)出的模塊只能在某個(gè)級(jí)別使用。如果沒(méi)有,那么有沒(méi)有創(chuàng)造性的方法來(lái)解決這個(gè)問(wèn)題?尋找解決大規(guī)模開(kāi)發(fā)問(wèn)題/經(jīng)驗(yàn)的想法:)
查看完整描述

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();


查看完整回答
反對(duì) 回復(fù) 2022-07-08
  • 1 回答
  • 0 關(guān)注
  • 97 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)