NodeJS 匯入包的時候出現的 @types 錯誤導致程式無法執行

在一次開發 NodeJS 專案的時候,我們希望包的匯入是用 import 匯入的方式。

但是在具體匯入的時候發現是使用 @types 匯入的。

NodeJS 匯入包的時候出現的 @types 錯誤導致程式無法執行

如果上面的圖顯示的匯入方式,結果結果是導致程式錯誤無法執行。

問題和原因

儘管我們在包的配置檔案中添加了需要匯入的包的版本。

“bluebird”: “^3。5。1”,

但是我們發現還是沒有正確的使用,還是使用的是 @types 的方式。

@types

經過一些研究,有時候 @types 這個的使用是因為在 JS 世界中有很多的包不是透過 TypeScript 進行開發的,使用是普通的 JS 。

為了讓使用 JS 的庫能夠在 TypeScript 上使用,那麼我們在匯入的時候需要新增 @types

但是我們的這個問題是,我們並沒有新增需要的 @types/bluebird, 但是這個是從哪裡來的呢?

這個時候,我們需要找到這個包匯入的依賴了。

在匯入這個包所在專案的資料夾中,開啟 package。json 這個檔案。

在這個檔案中也沒有找到這個包的依賴,也不是使用types 定義的。

只能從專案中的依賴找原因了。

在這個檔案中,我們會看到

“_requiredBy”: [ “/@types/request-promise” ],

這個就是讓 @types/bluebird 匯入的元兇了,因為這個型別是 @types 的,所以我們按照 @types 匯入了 bluebird。

但是實際使用的時候,我們的程式使用的是另外的一種匯入方式。

因此,針對這個問題,我們最簡單的辦法就是將 /@types/request-promise 從你的包的依賴中刪除。

NodeJS 匯入包的時候出現的 @types 錯誤導致程式無法執行

這樣就能解決我們上面遇到的問題了。

https://www。ossez。com/t/nodejs-types/13801