typescript - 如何将 super 的类型分配给子构造函数

标签 typescript typescript-typings

我正在寻找一种方法将父构造函数参数的类型传递给子构造函数,例如

class B extends A {    
    constructor (input) {
        super(input);
    }
}

我试过了

class B extends A {    
    constructor (input : ConstructorParameters<typeof super>) {
        super(input);
    }
}

但我从 eslint 'super' is not defined.

收到错误消息

最佳答案

我认为你必须传递为 ConstructorParameters<typeof A>[0]作为构造函数参数类型。

class A {
  title: string;
  constructor(title: string) {
    this.title = title;
  }
}

class B extends A {
  constructor(title: ConstructorParameters<typeof A>[0]) {
    super(title);
  }
}

您可以尝试在评论中建议的另一种解决方案:

  constructor(title: ConstructorParameters<typeof A>) {
    super(...title);
  }

关于typescript - 如何将 super 的类型分配给子构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69220098/

相关文章:

javascript - 类型检查不适用于 .ts 文件上的 VsCode

javascript - Angular 7 迭代表

带有继承的 Typescript 编译器错误泛型类型

typescript - 如何使用TypeScript for VSCode键入JSON文件?

visual-studio - 如何获得 Vue.js 2.0 typescript for TypeScript 与 Visual Studio 一起使用?

typescript - 寻找由模板文字类型的任何可能组合组成的 TypeScript 类型

javascript - 使用 Loopback 4 发送电子邮件

typescript - Nuxt/ typescript : Cannot access this - TS2339: Property 'XXX' does not exist on type

Angular 2 --aot 导致 AnimationEntryMetadata 失败

typescript 默认导出未定义