Quindi penso che ho trovato una soluzione. Basta avvolgere la parola 'modulo' tra parentesi nel file .ts:
declare var module: any;
(module).exports = MyClass;
Il file javascript generato sarà esattamente lo stesso:
(module).exports = MyClass;
Nota, meglio che dichiarare modulo var te stesso, scaricare il file di definizione node.d.ts e incollarla nella stessa directory del file typescript. Ecco un esempio completo di un espresso Node.JS file di instradamento che assume node.d.ts è nella stessa directory:
/// <reference path="node.d.ts" />
var SheetController = function () {
this.view = function (req, res) {
res.render('view-sheet');
};
};
(module).exports = SheetController;
Posso quindi nuove fino a SheetController e (usando espresso) assegnare il metodo di visualizzazione:
var sheetController = new SheetController();
app.get('/sheet/view', sheetController.view);
Suppongo che una qualsiasi parola chiave può essere sfuggito utilizzando questo schema:
declare var reservedkeyword: any;
(reservedkeyword).anything = something;