2017-04-20 41 views
1

我已經安裝了隨其類型一起提供的npm模塊(react-native-mobx)。這是從node_modules目錄中的文件:vscode:如何引用node_module庫中的類型

enter image description here

,請注意突出mobx.d.ts文件,其中包含的類型。我安裝了打字機2.2.2。正如我現在,類型現在包含在node_modules中的@types文件夾中。在這種情況下,我如何在代碼中引用這個庫並具有正常的智能性?我是否應該在@types內創建一個文件夾'react-native-mobx'並複製其中的mobx.d.ts並將其名稱更改爲index.d.ts?

謝謝你的幫助。

+1

應該「開箱即用」。 您可以使用'--traceResolution'標誌手動運行'tsc',並且在查找'node_modules/@ types/react之前,您會看到typescript搜索'node_modules/react-native-mobx'中的類型-native-mobx'文件夾。 –

+0

謝謝你的答案。這是我運行'tsc --traceResolution'的答案: 文件'C:/.../ node_modules/react-native-mobx/index.d.ts'不存在。 – TheSoul

+0

看起來像tsc期望庫的根目錄上的index.d.ts – TheSoul

回答

0

這應該只是爲你工作。你使用的是什麼版本的mobx

[email protected]node_modules/mobx/package.json指定"typings": "lib/mobx.d.ts"其中TypeScript tsc編譯器將檢查以查找類型。

如果package.json不指定typingstypes值,則默認爲尋找index.d.ts,看到更具體的信息,文檔關於他們是如何解決:https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html

也許你上舊版mobx沒有合適package.jsontypings指定

0

@Alex,謝謝你的回答。是的,package.json指定typings": "lib/mobx.d.ts。問題是:這個文件定義不在庫的根目錄中,而是位於子目錄中。這是該項目node_modules文件夾內的文件夾結構:

/react-native-mobx 
    -index.js 
    -package.json 
    -readme.md 
    ... 
    /node_modules 
     /mobx 
      -package.json <-- "typings: lib/mobx.d.ts" 
      /lib 
       - mob.d.ts 

當我運行tsc --traceResolution,我可以看到,打字稿確實解析這個內部文件夾。但是,報告說的package.json不包含分型,很奇怪...

更新 作爲一種解決我複製mobx.d.ts從它的內部文件夾複製到根文件夾,我改變了它姓名到index.d.ts。現在打字稿選取類型。但是這是一個非常醜陋的解決方法,因爲我搞亂了node_modules文件夾中的文件。據我所知,

相關問題