我正在开发一个JavaScript编译器,除其他功能外,它们还将在构建时替换某些函数和变量。
例如以下文件(./src/my-module.js
):
defineModule("MyModule", function(exports) {
return exports;
});
将被复制并转换为(./build/my-module.js
):
(function(global, factory) {
"use strict";
if (typeof exports !== "undefined" && typeof module !== "undefined") module.exports.MyModule = factory(exports.MyModule || {});
else factory(global.MyModule = {});
})(this, function(exports) {
return exports;
});
其中一些函数也可能返回结果。在那种情况下,我希望能够在不使用require
的情况下声明参数的类型和函数的结果。 VSCode是否可以有一个全局.d.ts
定义?
到目前为止,我所做的就是将函数添加到eslint
的全局变量中,以免出错。
答案 0 :(得分:5)
您可以在settings.json
中指定自己的TypeScript文件夹路径,在其中可以使用*.d.ts
选项指定自己的typescript.tsdk
文件。
{
"typescript.tsdk": "node_modules/typescript/lib"
}
答案 1 :(得分:1)
此答案主要是受mootrichard's answer的启发,但是由于必须对其进行修改才能与我的项目一起使用,因此我还要添加此答案。
如果您在全局JavaScript函数(即eval
)上按 F12 ,则会显示一个包含JavaScript文档的键入声明文件(lib.es5.d.ts
)。您可以只向该文件添加任何其他名称空间或函数。但是您需要使用declare
而不是export
。
示例:
//... Other Global JavaScript Declarations
// JavaScript Number Interface
interface Number {
//...
}
// JavaScript Date Interface
interface Date {
//...
}
declare function ezDefine(moduleName: string, generator: *): void;