gpt4 book ai didi

node.js - 我如何用 TypeScript ES6 样式 'EventEmitter = require(' events').EventEmitter' 重写此语句?

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:20 24 4
gpt4 key购买 nike

如标题所述,我想用 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

最佳答案

没关系,它有效!这只是 Rx 定义文件的问题。

我更改了以下内容。

import * as Rx from "rx"

const Rx = require('rx')

并保留ES6导入风格来导入EventEmitter。

关于node.js - 我如何用 TypeScript ES6 样式 'EventEmitter = require(' events').EventEmitter' 重写此语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32627328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com