天天看點

你知道 JS 中的子產品導入有一個缺點嗎?

雲栖号資訊:【 點選檢視更多行業資訊

在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

1.命名導入和自動完成

假設我信編寫了一個簡單的JavaScript子產品:

你知道 JS 中的子產品導入有一個缺點嗎?

子產品stringUtils具有導出了一個函數exequalsIgnoreCase,該函數比較兩個忽略大小寫的字元串。

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

現在在 app.js 檔案中導入函數 exequalsIgnoreCase

你知道 JS 中的子產品導入有一個缺點嗎?

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

你知道 JS 中的子產品導入有一個缺點嗎?

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

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

盡管 ES6 子產品優點很多,但導入子產品文法使自動完成功能難以使用。

2.Python 中的子產品

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

下面用 Python 實作的相同子產品stringUtils和函數equalsIgnoreCase:

你知道 JS 中的子產品導入有一個缺點嗎?

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

現在,在另一個Python子產品app内部,将stringUtils導入equalsIgnoreCase函數:

你知道 JS 中的子產品導入有一個缺點嗎?

在Python中,首先指出要從:from stringUtils哪裡導入的子產品。

如果你想知道可以導入的函數,編輯器已經知道了子產品名并給出了必要的建議,這種方式會更加友好。

3.解決方法

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

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

啟用插件後,通過使用imd代碼段并按tab鍵,光标首先跳到編寫子產品路徑的位置。然後,在按下tab鍵後,光标會跳轉回花括号内的導入位置。它是這樣工作的:

你知道 JS 中的子產品導入有一個缺點嗎?

總結

在JavaScript中,導入文法會強制我們先指出要導入的項目(函數,類,變量),然後再指明子產品的路徑。 這種方法不太友好。

相反,在Python中,首先指定子產品名稱,然後指定要導入的元件:from stringUtils import equalsIgnoreCase。 使用此文法可以輕松自動完成導入的項目。

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

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/zhibo

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文釋出時間:2020-04-08

本文作者:前端小智

本文來自:“

掘金

”,了解相關資訊可以關注“掘金”

繼續閱讀