带有 TypeScript 的 NodeJS EventEmitter class
NodeJS EventEmitter with TypeScript class
是否可以将 NodeJS events.EventEmitter
与 TypeScript class 一起使用?如果是,如何?
在过去的几个小时里,我尝试了无数种变体来让它工作,所以我不会列出其中的任何一种。
我基本上想做的事情:
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');
});
}
}
您应该下载节点类型:
$ tsd install node --save
然后只需使用以下代码:
///<reference path="./typings/node/node.d.ts" />
import events = require('events');
class Database{
constructor() {
events.EventEmitter.call(this);
}
}
我简化了它来测试你的主要问题。
编辑: 根据您的评论修改:
///<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();
下载 NodeJS 和 EventEmitter 类型定义的现代方法是 yarn add @types/node
或 npm install @types/node
是否可以将 NodeJS events.EventEmitter
与 TypeScript class 一起使用?如果是,如何?
在过去的几个小时里,我尝试了无数种变体来让它工作,所以我不会列出其中的任何一种。
我基本上想做的事情:
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');
});
}
}
您应该下载节点类型:
$ tsd install node --save
然后只需使用以下代码:
///<reference path="./typings/node/node.d.ts" />
import events = require('events');
class Database{
constructor() {
events.EventEmitter.call(this);
}
}
我简化了它来测试你的主要问题。
编辑: 根据您的评论修改:
///<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();
下载 NodeJS 和 EventEmitter 类型定义的现代方法是 yarn add @types/node
或 npm install @types/node