Więc myślę, że znalazłem obejście. Po prostu zawiń słowo kluczowe „module” w nawiasach w pliku .ts:
declare var module: any;
(module).exports = MyClass;
Wygenerowany plik javascript będzie dokładnie taki sam:
(module).exports = MyClass;
Uwaga, lepiej niż samodzielnie deklarować moduł var, pobierz plik definicji node.d.ts i umieść go w tym samym katalogu, w którym znajduje się plik maszynopisu. Oto pełny przykład pliku routingu express node.js, który zakłada, że node.d.ts znajduje się w tym samym katalogu:
var SheetController = function () {
this.view = function (req, res) {
res.render('view-sheet');
};
};
(module).exports = SheetController;
Mogę następnie utworzyć kontroler SheetController i (używając ekspresu) przypisać metodę widoku:
var sheetController = new SheetController();
app.get('/sheet/view', sheetController.view);
Przypuszczam, że każde słowo kluczowe można zmienić za pomocą tego wzorca:
declare var reservedkeyword: any;
(reservedkeyword).anything = something;