Typescript 类导入错误:类型“<组件名称>”中缺少属性“原型”,但类型“typeof <组件名称>”中需要属性“原型”。TS(2741)

JTA*_*TAN 5 typescript

尝试将一个组件导入到第二个组件时,我收到以下错误。

“InputComponent”类型中缺少属性“prototype”,但“typeof InputComponent”类型中需要属性“prototype”。TS(2741)

测试.ts

class InputComponent {

  add():number{
    return 1 + 1
  }
}

class Example {
  public input: typeof InputComponent;

  constructor(Input: typeof InputComponent) {
    this.input = new Input();
  }
}

class Example2 {
  public input: typeof InputComponent;

  constructor(Input: typeof InputComponent = InputComponent) {
    this.input = new Input();
  }
}
Run Code Online (Sandbox Code Playgroud)

这是错误和沙箱的屏幕截图。

打字稿沙箱

在此输入图像描述

在此输入图像描述

小智 7

问题是您指的是public inputtotypeof InputComponent但您试图将 a 分配new InputComponent()给它。

改变它就可以public input: InputComponent解决问题。

在打字稿中指InputComponent的是类的对象,而typeof InputComponent指的是类本身。

class InputComponent {

  add():number{
    return 1 + 1
  }
}

class Example {
  public input: InputComponent;

  constructor(Input: typeof InputComponent) {
    this.input = new Input();
  }
}

class Example2 {
  public input: InputComponent;

  constructor(Input: typeof InputComponent = InputComponent) {
    this.input = new Input();
  }
}
Run Code Online (Sandbox Code Playgroud)