[英]How to use the .d.ts typings locally for vscode intellisense in a node.js project?
我正在設置一個使用本機加載項的node.js項目。 本機加載項包括大量導出的功能。 我已經設置了一個.d.ts
文件( .d.ts
),其中包括從本機加載項導出的所有功能定義和數據等。 當我用npm打包所有這些內容並將其安裝到客戶端項目中時,vscode intellisense會選擇所有類型,一切都很好。
當我嘗試在與本機加載項相同的項目中為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;
當我將插件(通過index.js
)用於test.js
時,如何讓vscode在本地使用intellisense的test.js
?
為了為vscode intellisense創建類型以同時適用於“本地”用例(與test.js
一起test.js
)和“全局”用例(作為node_module),在main / entry .js
完成后命名文件。 在這種情況下, "main"
文件是index.js
,因此index.d.ts
變為index.d.ts
。
這看起來很自然,但是我無法找到這樣指定vscode intellisense的文檔。
我以前曾以package / node_module名稱packagename.d.js
命名類型,然后將"main"
(來自package.json
)保留為index.js
。 package.json
中的“ .d.ts
”值也應與.d.ts
文件名匹配。
我想一個很好的替代“ index.js”或“ main.js”的方法是,在包名之后命名主入口點和相應的類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.