Je travaille sur un transpilateur JavaScript qui, à part d'autres choses, remplacera également certaines fonctions et variables lors de la construction.
Par exemple, le fichier suivant (./src/my-module.js
):
defineModule("MyModule", function(exports) {
return exports;
});
Sera copié et converti en (./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;
});
Certaines de ces fonctions peuvent également renvoyer un résultat. Dans ce cas, je voudrais pouvoir déclarer les types de paramètres et le résultat de la fonction sans utiliser require
. Est-il possible d'avoir une définition globale .d.ts
Dans VSCode?
Jusqu'à présent, tout ce que j'ai fait est d'ajouter les fonctions à la variable globale de eslint
afin de ne pas avoir d'erreurs.
Cette réponse a été principalement inspirée par réponse de mootrichard , mais comme elle a dû être modifiée, pour travailler avec mon projet, j'ajoute également cette réponse.
Si vous appuyez sur F12 sur une fonction JavaScript globale (c'est-à-dire eval
) un fichier de déclarations de saisie apparaîtra (lib.es5.d.ts
), contenant la documentation JavaScript. Vous pouvez simplement ajouter des espaces de noms ou des fonctions supplémentaires à ce fichier. Mais vous devez utiliser declare
et non export
.
Exemple:
//... Other Global JavaScript Declarations
// JavaScript Number Interface
interface Number {
//...
}
// JavaScript Date Interface
interface Date {
//...
}
declare function ezDefine(moduleName: string, generator: *): void;