美文网首页
@types.node中关于EventEmitter的定义

@types.node中关于EventEmitter的定义

作者: 夜雨归人 | 来源:发表于2020-12-10 10:42 被阅读0次

    项目中用到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 {
                      ...
                }
            }
        }
    

    问题解决。

    相关文章

      网友评论

          本文标题:@types.node中关于EventEmitter的定义

          本文链接:https://www.haomeiwen.com/subject/tuulgktx.html