[英]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.