кто-нибудь знает, как сделать module.exports?
Я пробовал несколько разных способов получить
export class Greeter {}
который будет компилироваться в
exports.Greeter = Greeter;
Но на самом деле я хочу вот что:
exports = Greeter;
Чтобы я мог использовать это так:
import { Greeter } from "greeter";
const greeter = new Greeter();
и нет
import { Greeter } from "greeter";
const greeter = new Greeter.Greeter();
Возможно ли это с помощью Typescript?
typescript
import
commonjs
Керстен
источник
источник
module.exports
в конце.Теперь это реализовано и готово в TypeScript 0.9 :)
источник
export = Greeter;
, чтобы это именно то, что вы делаете :)config/db.ts
и использовать эту конфигурацию в приложении. Это то, что я мог успешно сделать в TypeScript 1.4:config/db.ts
писатьvar config = {connStr:'postgres://user:pass@host/dbname'}; export = config;
иapp.ts
ссылаться на это какimport dbConfig = require('./config/db'); dbConnect(dbConfig.connStr);
Думаю, я нашел обходной путь. Просто заключите ключевое слово «модуль» в скобки в своем файле .ts:
declare var module: any; (module).exports = MyClass;
Сгенерированный файл javascript будет точно таким же:
(module).exports = MyClass;
Обратите внимание: лучше, чем самостоятельно объявлять модуль var, скачать файл определения node.d.ts и поместить его в тот же каталог, что и ваш файл машинописного текста. Вот полный пример файла маршрутизации Express node.js, который предполагает, что node.d.ts находится в том же каталоге:
/// <reference path="node.d.ts" /> var SheetController = function () { this.view = function (req, res) { res.render('view-sheet'); }; }; (module).exports = SheetController;
Затем я могу создать новый SheetController и (используя экспресс) назначить метод просмотра:
var sheetController = new SheetController(); app.get('/sheet/view', sheetController.view);
Я полагаю, что любое ключевое слово можно избежать с помощью этого шаблона:
declare var reservedkeyword: any; (reservedkeyword).anything = something;
источник
Это уродливо и взломано, но вы все равно можете:
class Greeter {} declare var exports:any; exports = Greeter;
Что компилируется в:
var Greeter = (function () { function Greeter() { } return Greeter; })(); exports = Greeter;
источник