类是否需要在Typescript中使用构造函数?

Gro*_*fit 14 typescript

我看到的所有示例都显示了一个带有构造函数的类.可以不加入构造函数吗?很像C#如何自动使你成为默认的空构造函数?

Rya*_*ugh 28

从规范,第8.3节:

一个类最多可以包含一个构造函数声明.如果类不包含构造函数声明,则提供自动构造函数,如8.3.3节中所述.


Jon*_*ear 9

正确.TypeScript中的类不要求您显式编写构造函数.但是,如果要扩展基类,则需要创建一个构造函数,以便至少调用super().

  • 刚被这一个抓住了,因为在这个地方有更多的explcit信息. (2认同)
  • 关于派生类,这里来自 TypeScript 规范,[8.3.3 自动构造函数](https://github.com/Microsoft/TypeScript/blob/master/doc/spec-ARCHIVED.md#833-automatic-constructors) :“在派生类中,自动构造函数与基类构造函数具有相同的参数列表(并且可能重载)。自动提供的构造函数首先使用等效于`BaseClass.apply(this , arguments);` 然后执行实例成员变量初始值设定项,如果有的话”。 (2认同)

小智 6

只是为了扩展接受的答案并更正 Jon Gear 的答案(TS 可能在此期间发生了变化):派生类不需要创建一个构造函数,其唯一目的是调用super().

https://stackblitz.com/edit/no-need-for-derived-constructor?file=index.ts