Angular2中的默认属性值 - 构造函数还是内联?

时间:2017-04-03 20:40:15

标签: angular oop typescript constructor

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

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

VS

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

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

2 个答案:

答案 0 :(得分:2)

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

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

如果你不需要构造函数给你的灵活性,你应该使用哪一个很大程度上取决于个人风格偏好。

答案 1 :(得分:2)

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

在此处试试:https://www.typescriptlang.org/play/