【问题标题】:Default property values in Angular2 - constructor or inline?Angular2中的默认属性值 - 构造函数还是内联?
【发布时间】:2017-08-28 20:44:13
【问题描述】:

在 angular2 中创建对象类时,我应该内联还是在构造函数中初始化值?有区别吗?

export class Foo {
  id: string;
  name: string = '';
  url: string = '';
}

export class Foo {
  id: string;
  name: string;
  url: string;

  constructor() {
    this.name = '';
    this.url = '';
  }
}

【问题讨论】:

  • 这个问题是关于 TypeScript 的,根本不是关于 angular2 的。

标签: angular oop typescript constructor


【解决方案1】:

两者生成的JS没有区别。编译 TypeScript 编译器时,只需在构造函数中内联初始化值。

在这里试试:https://www.typescriptlang.org/play/

【讨论】:

    【解决方案2】:

    内联初始化属性更简洁,并在其声明的上下文中保持属性的默认值。

    在构造函数中初始化属性允许您在初始化属性时利用构造函数参数。您还可以将声明顺序与值的初始化顺序分开(例如,如果一个属性的起始值取决于另一个属性的起始值)。

    在您不需要构造函数为您提供的灵活性的情况下,您应该使用哪一个很大程度上取决于个人风格偏好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-24
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 2012-06-30
      • 2011-06-22
      • 1970-01-01
      相关资源
      最近更新 更多