类型缺少类型的以下属性?

时间:2019-06-13 09:10:51

标签: javascript typescript

我收到此消息

  

“ Motorvoertuig”类错误地实现了“ Voertuig”接口。
  类型“ Motorvoertuig”缺少类型的以下属性   'Voertuig':toonMerk,wieIsDeEigenaar

但是我真的不知道为什么吗?

我在本文档中有更多代码,但错误来自以下方法。

interface Voertuig {
     merk: string;
    eigenaar: string;

    toonMerk(merk:string);
    wieIsDeEigenaar(eigenaar:string);
};
abstract class Motorvoertuig implements Voertuig {
  (Some code)
}

如何摆脱这个错误?

2 个答案:

答案 0 :(得分:0)

您已将Motorvoertuig标记为实现Voertuig接口,这意味着您需要将Voertuig接口中存在的所有字段添加到Motorvoertuig类中。 例如:

abstract class Motorvoertuig implements Voertuig {
  merk: string = '';
  eigenaar: string = '';
  toonMerk(merk: string) {}
  wieIsDeEigenaar(eigenaar: string) {}
}

或者您可以尝试使用类似的东西:

abstract class Motorvoertuig implements Partial<Voertuig> {
}

检查advanced typescript types

答案 1 :(得分:0)

实现接口时,需要定义在接口中声明的属性。在Motorvoertuig中,您可能已经定义了merkeigenaar,但没有定义toonMerkwieIsDeEigenaar

如果您不想在抽象类Motorvoertuig中实现这些方法,则可以使这些方法像这样抽象:

abstract toonMerk(merk: string);
abstract wieIsDeEigenaar(merk: string);