簡體   English   中英

TypeScript - 沒有定義文件的第三方庫 - 智能感知是否可能?

[英]TypeScript - third party libraries without definition files - is intellisense possible?

我使用的IDE是WebStorm,但我的問題適用於任何IDE。


我正在為我的項目安裝一些第三方節點模塊,有些在DefinitelyTyped中沒有可用的定義文件,或者定義文件已過時。 我目前用於這些庫的解決方法是以下之一:

  1. 將第三方命名空間/模塊聲明為type any
  2. 聲明一個最小定義,它指定我使用的庫公開的方法。 例如:

     declare module 'redux-simple-router' { export function syncHistory(history: any): any export function routeReducer(): any } 

2比1更優越,因為它提供了更多的信息,並且我能夠為方法名稱自動完成,例如,但是,如果我使用非類型腳本ES6,這兩種方法都遠不如WebStorm目前提供的那樣與巴別塔。 有什么方法可以在我的項目中結合兩種智能感知方式嗎?

換句話說,我正在尋找的是一種告訴WebStorm的方法:對於每次導入,如果你有類型定義使用它,如果沒有 - 使用常規intellisense(即在node_modules中搜索導入)。

我希望我的問題以一種有意義的方式表達,如果它以任何方式混淆,請告訴我。

Is there any way that I can combine both intellisense ways in my project?

那么......目前,如果WebStorm可以使用typescript存根和node_modules來解析某些函數,則會合並結果(可能會在嘗試進行聲明時導致“幾個定義”等)。 如果由於定義模塊的方式(動態等)而無法從node_modules解析,則僅使用打字稿存根。 將來,我們計划僅使用存根來完成/錯誤檢查,但是(如果可能)在導航到定義/搜索用法時使用node_modules

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM