微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

@types/hapi__hapi 错误 TS2314:通用类型“监听器”需要 1 个类型参数

如何解决@types/hapi__hapi 错误 TS2314:通用类型“监听器”需要 1 个类型参数

hapi 新手并在 Typescript 中使用版本 "@hapi/hapi": "^20.1.2"。当我添加包 "@types/hapi__hapi": "^20.0.6,@types/hapi__hapi 和它的依赖 @types/hapi__podium 之间存在类型不匹配。我收到以下错误

node_modules/@types/hapi__hapi/index.d.ts:254:18 - error TS2430: Interface 'RequestEvents' incorrectly extends interface 'Podium'.
  Types of property 'on' are incompatible.
    Type '{ (criteria: "peek",listener: PeekListener): void; (criteria: "finish" | "disconnect",listener: (data: undefined) => void): void; }' is not assignable to type '<Tcontext extends object = this>(criteria: string | CriteriaObject,listener: Listener<Tcontext>,context?: Tcontext) => this'.
      Types of parameters 'listener' and 'listener' are incompatible.
        Types of parameters 'tags' and 'encoding' are incompatible.
          Type 'string' is not assignable to type '{ [tag: string]: true; }'.

254 export interface RequestEvents extends Podium {
                     ~~~~~~~~~~~~~

node_modules/@types/hapi__hapi/index.d.ts:514:32 - error TS2709: Cannot use namespace 'Boom' as a type.

514     response: ResponSEObject | Boom;
                                   ~~~~

node_modules/@types/hapi__hapi/index.d.ts:627:18 - error TS2430: Interface 'ResponseEvents' incorrectly extends interface 'Podium'.
  Types of property 'on' are incompatible.
    Type '{ (criteria: "peek",listener: PeekListener): void; (criteria: "finish",context?: Tcontext) => this'.
      Types of parameters 'listener' and 'listener' are incompatible.
        Types of parameters 'tags' and 'encoding' are incompatible.
          Type 'string' is not assignable to type '{ [tag: string]: true; }'.

627 export interface ResponseEvents extends Podium {
                     ~~~~~~~~~~~~~~

node_modules/@types/hapi__hapi/index.d.ts:2357:43 - error TS2314: Generic type 'Listener' requires 1 type argument(s).

2357     removeListener(criteria: K,listener: Podium.Listener): this;
                                               ~~~~~~~~~~~~~~~

node_modules/@types/hapi__hapi/index.d.ts:2375:18 - error TS2430: Interface 'ServerEvents' incorrectly extends interface 'Podium'.
  The types returned by 'on(...)' are incompatible between these types.
    Type 'void' is not assignable to type 'this'.
      'this' Could be instantiated with an arbitrary type which Could be unrelated to 'void'.

2375 export interface ServerEvents extends Podium {
                      ~~~~~~~~~~~~

node_modules/@types/hapi__hapi/index.d.ts:2441:44 - error TS2314: Generic type 'Listener' requires 1 type argument(s).

2441     removeListener(name: string,listener: Podium.Listener): Podium;
                                                ~~~~~~~~~~~~~~~

node_modules/@types/hapi__hapi/index.d.ts:4057:18 - error TS2709: Cannot use namespace 'Boom' as a type.

4057         (Error | Boom) |
                      ~~~~

node_modules/@types/hapi__inert/node_modules/@types/hapi__hapi/index.d.ts:260:18 - error TS2430: Interface 'RequestEvents' incorrectly extends interface 'Podium'.
  Types of property 'on' are incompatible.
    Type '{ (criteria: "peek",context?: Tcontext) => this'.
      Types of parameters 'listener' and 'listener' are incompatible.
        Types of parameters 'tags' and 'encoding' are incompatible.
          Type 'string' is not assignable to type '{ [tag: string]: true; }'.

260 export interface RequestEvents extends Podium {
                     ~~~~~~~~~~~~~

node_modules/@types/hapi__inert/node_modules/@types/hapi__hapi/index.d.ts:633:18 - error TS2430: Interface 'ResponseEvents' incorrectly extends interface 'Podium'.
  Types of property 'on' are incompatible.
    Type '{ (criteria: "peek",context?: Tcontext) => this'.
      Types of parameters 'listener' and 'listener' are incompatible.
        Types of parameters 'tags' and 'encoding' are incompatible.
          Type 'string' is not assignable to type '{ [tag: string]: true; }'.

633 export interface ResponseEvents extends Podium {
                     ~~~~~~~~~~~~~~

node_modules/@types/hapi__inert/node_modules/@types/hapi__hapi/index.d.ts:2365:43 - error TS2314: Generic type 'Listener' requires 1 type argument(s).

2365     removeListener(criteria: K,listener: Podium.Listener): this;
                                               ~~~~~~~~~~~~~~~

node_modules/@types/hapi__inert/node_modules/@types/hapi__hapi/index.d.ts:2383:18 - error TS2430: Interface 'ServerEvents' incorrectly extends interface 'Podium'.
  The types returned by 'on(...)' are incompatible between these types.
    Type 'void' is not assignable to type 'this'.
      'this' Could be instantiated with an arbitrary type which Could be unrelated to 'void'.

2383 export interface ServerEvents extends Podium {
                      ~~~~~~~~~~~~

node_modules/@types/hapi__inert/node_modules/@types/hapi__hapi/index.d.ts:2449:44 - error TS2314: Generic type 'Listener' requires 1 type argument(s).

2449     removeListener(name: string,listener: Podium.Listener): Podium;
                                                ~~~~~~~~~~~~~~~

新版本有什么问题吗??我该如何解决这个问题/是否有可行的版本回滚?

当前 package.json 文件

...
  "dependencies": {
    "@hapi/hapi": "^20.1.2","dotenv": "^8.2.0","express": "^4.17.1","nodemon": "^2.0.7","ts-node-dev": "^1.1.6","tslint": "^6.1.3","typescript": "^4.2.4"
  },"devDependencies": {
    "@types/hapi__hapi": "^20.0.6"
  }
...

解决方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。