javascript - NodeJS EventEmitter med TypeScript-klass
Är det möjligt att använda NodeJS events.EventEmitter med en TypeScript-klass? Om ja, hur?
Jag har försökt otaliga varianter de senaste timmarna för att få detta att fungera, så jag kommer inte att lista någon av dem.
Vad jag i princip vill göra:
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');
});
}
}
Svar #1
Ny metod:
///<reference path="./typings/node/node.d.ts" />
import {EventEmitter} from 'events';
class Database extends EventEmitter {
constructor() {
super();
this.emit('ready');
}
}
new Database();
Svar #2
Du bör ladda ner node-typningar:
tsd install node --save
och använd sedan bara följande kod:
///<reference path="./typings/node/node.d.ts" />
import events = require('events');
class Database{
constructor() {
events.EventEmitter.call(this);
}
}
Jag förenklade det för att testa ditt huvudproblem.
Redigera: Ändrad baserat på din kommentar:
///<reference path="./typings/node/node.d.ts" />
import events = require('events');
class Database extends events.EventEmitter {
constructor() {
super();
this.emit('ready');
}
}
new Database();
