Установить глобальное объявление в JavaScript vscode
Я работаю над транспортером 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
. Можно ли иметь глобальный .d.ts
определение в VSCode?
Пока что все, что я сделал, это добавил функции в глобальную переменную eslint
чтобы не было ошибок.
Ответы
Ответ 1
Квитирование
Этот ответ был в основном вдохновлен ответом mootrichard, но так как его пришлось изменить, чтобы работать с моим проектом, я также добавляю этот ответ.
Решение
Если вы нажмете F12 в глобальной функции JavaScript (то есть eval
), появится файл объявлений о наборе текста (lib.es5.d.ts
), содержащий документацию JavaScript. Вы можете просто добавить любые дополнительные пространства имен или функцию в этот файл. Но вам нужно использовать declare
, а не export
.
Пример:
//... Other Global JavaScript Declarations
// JavaScript Number Interface
interface Number {
//...
}
// JavaScript Date Interface
interface Date {
//...
}
declare function ezDefine(moduleName: string, generator: *): void;
Ответ 2
Вы можете указать свой собственный путь к папке TypeScript в settings.json
, где вы можете указать свои собственные файлы lib.*.d.ts
, используя опцию typescript.tsdk
.
{
"typescript.tsdk": "node_modules/typescript/lib"
}
Ответ 3
Я не уверен, правильно ли я понял. Это проект Typescript? Если да, вы можете добавить следующее в ваш tsconfig.json
:
{
"compilerOptions": {
"paths": {
"*": [
"src/types/*",
"other/source/folders/here/*"
]
},
...
},
...
}
Затем вы можете добавить, .d.ts
файлы .d.ts
в папку src/types
.
Дайте мне знать, если это ответ, который вы ищете.