【发布时间】:2015-09-17 09:48:53
【问题描述】:
如标题所述,我想用 TypeScript 重写下面的语句
EventEmitter = require('events').EventEmitter
到 ES6 风格
import {EventEmitter} from "events"
我不确定这两个是否等价,实际上我认为它们不是,因为当我尝试将 RxJS 与上面的第二条语句一起使用时,它不会编译示例下面是第一个。
当我使用上面的第二条语句时,我遇到了以下错误。
.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'.
例子:
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
【问题讨论】:
-
ES6 - Convert from 'require' to 'import' 的可能重复项 - 虽然涉及 Typescript,但不确定
标签: node.js typescript ecmascript-6