¿Alguien sabe cómo hacer un module.exports?
Intenté algunas formas diferentes para terminar con
export class Greeter {}
que se compilará para
exports.Greeter = Greeter;
Pero lo que realmente quiero es esto:
exports = Greeter;
Para que pueda usarlo así:
import { Greeter } from "greeter";
const greeter = new Greeter();
y no
import { Greeter } from "greeter";
const greeter = new Greeter.Greeter();
¿Es esto posible con TypeScript?
typescript
import
commonjs
Kersten
fuente
fuente
module.exports
al final.Esto ahora se ha implementado y está listo en TypeScript 0.9 :)
fuente
export = Greeter;
, eso es exactamente lo que haces :)config/db.ts
y usar esa configuración en la aplicación. Esto es lo que pude hacer con éxito en TypeScript 1.4: Enconfig/db.ts
escrituravar config = {connStr:'postgres://user:pass@host/dbname'}; export = config;
y enapp.ts
referirlo comoimport dbConfig = require('./config/db'); dbConnect(dbConfig.connStr);
Así que creo que encontré una solución. Simplemente coloque la palabra clave 'módulo' entre paréntesis en su archivo .ts:
declare var module: any; (module).exports = MyClass;
El archivo javascript generado será exactamente el mismo:
(module).exports = MyClass;
Tenga en cuenta que, mejor que declarar el módulo var usted mismo, descargue el archivo de definición node.d.ts y péguelo en el mismo directorio que su archivo mecanografiado. Aquí hay una muestra completa de un archivo de enrutamiento express node.js que asume que node.d.ts está en el mismo directorio:
/// <reference path="node.d.ts" /> var SheetController = function () { this.view = function (req, res) { res.render('view-sheet'); }; }; (module).exports = SheetController;
Luego puedo crear un SheetController y (usando express) asignar el método de vista:
var sheetController = new SheetController(); app.get('/sheet/view', sheetController.view);
Supongo que cualquier palabra clave se puede escapar usando este patrón:
declare var reservedkeyword: any; (reservedkeyword).anything = something;
fuente
Es feo y hacky, pero aún puedes hacer:
class Greeter {} declare var exports:any; exports = Greeter;
Que se compila en:
var Greeter = (function () { function Greeter() { } return Greeter; })(); exports = Greeter;
fuente