Compte tenu du fichier tapuscrit suivant,Omettre "exiger" et "exportations" de tapuscrit émis AMD dépendances
export = {};
tsc
(avec "module": "amd"
) émettra:
define(["require", "exports"], function (require, exports) {
"use strict";
return {};
});
Cependant, je préférerais qu'il émettre
define([], function() {
"use strict";
return {};
});
... et inclure seulement require
ou exports
si je les importer explicitement, à savoir
import relativeRequire = require("require");
Est-il possible de dire de ne pas émettre tapuscrit require
et exports
dans les modules émis AMD (à savoir demandez-lui pas pour utiliser le CommonJS simplified wrapping)?
Notes:
- La sortie que je propose est totalement conforme à la AMD spec.
- Un tableau de dépendances vides est le only way pour que le module ait zéro dépendances (par opposition à l'omission du tableau de dépendances, ce qui implique les dépendances
require
,exports
etmodule
).
Mise à jour 4 Juillet 2017 On dirait que c'est en fait une question ouverte dans le repo tapuscrit GitHub: https://github.com/Microsoft/TypeScript/issues/669
Toutes les idées pour une solution pragmatique jusqu'à ce soit mis en oeuvre? (Ou, y a-t-il réellement un moyen de faire du typage?)
Je travaille avec une application assez volumineuse avec plusieurs milliers de modules AMD, dont environ 1300 sont chargés lors du démarrage de l'application - et doivent donc faire partie des actifs initialement fournis. J'ai déjà atteint la plupart des gains de performance en termes de temps de chargement, et la réduction de la taille des ressources (et peut-être l'élimination des modules virtuels inutiles) n'est qu'un autre élément de la longue liste des petites améliorations possibles. –