带有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();