Je pense donc avoir trouvé une solution de contournement. Il suffit de mettre le mot clé "module" entre parenthèses dans votre fichier .ts :
declare var module: any;
(module).exports = MyClass;
Le fichier javascript généré sera exactement le même :
(module).exports = MyClass;
Remarque, plutôt que de déclarer le module var vous-même, téléchargez le module fichier de définition node.d.ts et le placer dans le même répertoire que votre fichier typescript. Voici un exemple complet d'un fichier de routage node.js express qui suppose que le fichier node.d.ts se trouve dans le même répertoire :
/// <reference path="node.d.ts" />
var SheetController = function () {
this.view = function (req, res) {
res.render('view-sheet');
};
};
(module).exports = SheetController;
Je peux ensuite créer un SheetController et (à l'aide d'express) affecter la méthode de vue :
var sheetController = new SheetController();
app.get('/sheet/view', sheetController.view);
Je suppose que n'importe quel mot clé peut être échappé en utilisant ce modèle :
declare var reservedkeyword: any;
(reservedkeyword).anything = something;