带有TypeScript类的NodeJS EventEmitter

是否有可能使用types脚本类的NodeJS'events.EventEmitter? 如果是的话,怎么样?

我已经尝试了无数的变化,在最后几个小时得到这个工作,所以我不会列出他们中的任何一个。

我基本上想要做的是:

 export class Database{ constructor(cfg:IDatabaseConfiguration) { // events.EventEmitter.call(this); mongoose.connect(cfg.getConnectionString(), cfg.getCredentials(), function (err:any) { if (err) this.emit('error', err); else this.emit('ready'); }); } } 

你应该下载节点types:

 $ tsd install node --save 

然后使用下面的代码:

 ///<reference path="./typings/node/node.d.ts" /> import events = require('events'); class Database{ constructor() { events.EventEmitter.call(this); } } 

我简化了它来testing你的主要问题。

编辑:根据您的评论修改:

 ///<reference path="./typings/node/node.d.ts" /> import events = require('events'); class Database extends events.EventEmitter { constructor() { super(); this.emit('ready'); } } new Database(); 

新的方法:

 ///<reference path="./typings/node/node.d.ts" /> import {EventEmitter} from 'events'; class Database extends EventEmitter { constructor() { super(); this.emit('ready'); } } new Database();