@types.node中关于EventEmitter的定义

项目中用到thinkjs,一直用typescript编写代码。最早node用6.x版本都很正常,后来升级到了10.19,之后就一直报这个错误:


eventEmitter.png

因为是底层库的报错,在thinkjs官方qq群问了一圈,也没找到答复,估计大家都是用js,很少有人碰到这个问题。

以前偷懒解决方案是直接把这个index.d.ts改个名字或者删除,就没有报错了,因为我们的代码根本没有涉及到think.cluster,不需要它的代码提示。

今天重新pull了一下项目文件,重新yarn install之后,又报这个错。稍微花时间研究了一下。EventEmitter本来是个类,think.cluster里面继承了这个类。但是在10.19版本的@types/node/events.d.ts的定义里面,把它定义成了一个接口,所以会报这个错。

打开@types/node/events.d.ts这个文件,第59行:

    global {
        namespace NodeJS {
            interface EventEmitter {
                  ...
            }
        }
    }

修改为:

    global {
        namespace NodeJS {
            class EventEmitter {
                  ...
            }
        }
    }

问题解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容