首頁>技術>

1.命名匯入和自動完成

假設我編寫了一個簡單的JavaScript模組:

模組stringUtils具有匯出了一個函式exequalsIgnoreCase,該函式比較兩個忽略大小寫的字串。

看起來沒啥問題,挺好的。

現在在 app.js 檔案中匯入函式 exequalsIgnoreCase

我們大多數會這樣來引入:

首先,您必須編寫匯入名稱import {}。在此步驟中,IDE無法提供有關要匯入的可用名稱的任何建議。

然後,繼續寫入 from './stringUtils',然後移回大括號並展開自動完成以選擇要匯入的名稱。

儘管 ES6 模組優點很多,但匯入模組語法使自動完成功能難以使用。

2.Python 中的模組

現在讓我們嘗試在 Python 中匯入命名元件。它有同樣的問題嗎?

下面用 Python 實現的相同模組stringUtils和函式equalsIgnoreCase:

在 Python 中,不必顯式地指出要匯出的函式。

現在,在另一個Python模組app內部,將stringUtils匯入equalsIgnoreCase函式:

在Python中,首先指出要從:from stringUtils哪裡匯入的模組。

如果你想知道可以匯入的函式,編輯器已經知道了模組名並給出了必要的建議,這種方式會更加友好。

3.解決方法

我能找到的在JavaScript中對命名匯入啟用自動完成的唯一解決方案是呼叫IDE以獲得幫助。

例如,在Visual Studio Code中, 可以安裝JavaScript (ES6) code snippets外掛。

啟用外掛後,通過使用imd程式碼段並按tab鍵,游標首先跳到編寫模組路徑的位置。然後,在按下tab鍵後,游標會跳轉回花括號內的匯入位置。它是這樣工作的:

總結

在JavaScript中,匯入語法會強制我們先指出要匯入的專案(函式,類,變數),然後再指明模組的路徑。這種方法不太友好。

相反,在Python中,首先指定模組名稱,然後指定要匯入的元件:from stringUtils import equalsIgnoreCase。使用此語法可以輕鬆自動完成匯入的專案。

通過使用IDE的擴充套件外掛,例如 ES6 code snippet 外掛,可以減輕JavaScript中命名匯入自動完成的問題, 總比沒有好。

原文:https://dmitripavlutin.com/javascript-import-module-drawback/

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Linux 核心 um 架構使用