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

Angular2中的默认属性值-构造函数还是内联?,angular,oop,typescript,constructor,Angular,Oop,Typescript,Constructor,在angular2中创建对象类时,我应该内联初始化值还是在构造函数中初始化值?有区别吗 export class Foo { id: string; name: string = ''; url: string = ''; } vs 初始化内联属性更简洁,并使属性的默认值与其声明更符合上下文 在构造函数中初始化属性允许您在初始化属性时利用构造函数参数。您还可以将声明顺序与值的初始化顺序分开(例如,在一个属性的起始值依赖于另一个属性的情况下) 在不需要构造函数所提供的灵活性的情况下,

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

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


初始化内联属性更简洁,并使属性的默认值与其声明更符合上下文

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


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

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


在这里试一试:

这个问题完全是关于TypeScript的,而不是关于angular2的。
export class Foo {
  id: string;
  name: string;
  url: string;

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