Seperti judulnya, saya ingin menulis ulang pernyataan di bawah ini dalam TypeScript
EventEmitter = require('events').EventEmitter
ke gaya ES6
import {EventEmitter} from "events"
Saya tidak yakin apakah keduanya setara, sebenarnya saya berpikir keduanya tidak setara karena ketika saya mencoba menggunakan RxJS dengan pernyataan kedua di atas, contoh di bawah ini tidak dikompilasi padahal lakukan dengan yang pertama.
Saya mendapatkan kesalahan berikut ketika saya menggunakan pernyataan kedua di atas.
.build/lib/process.ts(12,3): error TS2345: Argument of type 'EventEmitter' is not assignable to parameter of type '{ on: (name: string, cb: (e: any) => any) => void; off: (name: string, cb: (e: any) => any) => vo...'.
Property 'off' is missing in type 'EventEmitter'.
Contoh:
var EventEmitter = require('events').EventEmitter,
Rx = require('rx');
var eventEmitter = new EventEmitter();
var source = Rx.Observable.fromEvent(
eventEmitter,
'data',
function (foo, bar) { return { foo: bar, bar: bar }; });
var subscription = source.subscribe(
function (x) {
console.log('Next: foo -' + x.foo + ', bar -' + x.bar);
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
eventEmitter.emit('data', 'baz', 'quux');
// => Next: foo - baz, bar - quux