我正在設置使用本機加載項的node.js項目。本地插件包含大量導出的函數。我已經設置了一個打印文件(.d.ts
),其中包含從本地附件中導出的所有函數定義和數據等。當我用npm打包所有這些文件並將其安裝到客戶端項目中時,vscode intellisense會提取所有類型,一切正常。如何在node.js項目中爲本地vscode intellisense使用.d.ts類型?
當我嘗試在與原生插件相同的項目中使用test.js
的類型時,類型沒有被拾取,特別是導出的變量;我懷疑它與.d.ts
中輸出的方式或.d.ts
中模塊的命名有關。
在.d.ts
,我有出口列爲;
interface MyI {
Initiate() : void;
}
module 'modulename' {
export var i : MyI;
}
我require
客戶機中的模塊(.js
文件);
var i = require("modulename");
在測試代碼,我需要它作爲(因爲我存根它通過一個index.js
文件);
var i = require("./index.js");
index.js
反過來看起來像;
var i = require("./lib/nativeaddon");
module.exports.i = i;
如何我得到vscode使用分型,局部,對於智能感知,當我使用的test.js
加載項(通過index.js
)?
您是否看過設置打字稿的VS代碼? https://code.visualstudio.com/docs/languages/typescript – Paul
我認爲你的意思是'test.ts',而不是'test.js',因爲JavaScript沒有任何TS感知智能感知。除非你定義了一個'index.d.ts'文件,否則你什麼都看不到。如果您更改爲'index.ts',事情會有所不同,但是。 –
@AndrewEisenberg。我的意思是test.js,vscode使用打字稿來增加他們的intellisense。但是,命名類型index.d.ts可以解決intellisense問題,謝謝(我之前將它命名爲包名稱)。你有參考嗎?我仍然在處理打字稿的問題,並且解決方案沒有發生在我身上。能寫出來作爲答案嗎? – Niall