Est-il possible d'utiliser NodeJS 'events.EventEmitter
avec une classe TypeScript? Si oui, comment?
J'ai essayé d'innombrables variantes au cours des dernières heures pour que cela fonctionne, donc je n'en énumérerai aucune.
Ce que je veux essentiellement faire:
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');
});
}
}
Vous devez télécharger les typages de nœuds:
$ tsd install node --save
puis utilisez simplement le code suivant:
///<reference path="./typings/node/node.d.ts" />
import events = require('events');
class Database{
constructor() {
events.EventEmitter.call(this);
}
}
Je l'ai simplifié pour tester votre problème principal.
Edit: Modifié en fonction de votre commentaire:
///<reference path="./typings/node/node.d.ts" />
import events = require('events');
class Database extends events.EventEmitter {
constructor() {
super();
this.emit('ready');
}
}
new Database();
Nouvelle approche:
///<reference path="./typings/node/node.d.ts" />
import {EventEmitter} from 'events';
class Database extends EventEmitter {
constructor() {
super();
this.emit('ready');
}
}
new Database();