构造函数内部和外部变量的设置值有什么区别

What the difference between setting value of variables within the constructor or outside it

这有什么区别:

export class List {
  categories: any[];
  constructor() {
    this.categories = ['First Class', 'Second Class', 'Economy'];
  }
}

还有这个:

export class List {
  categories: any[] = ['First Class', 'Second Class', 'Economy'];
  constructor() {
  }
}

两者都编译为相同的 Javascript 代码。考虑到,在此特定示例中,class 永远不会用传入的值实例化,我是否可以坚持在构造函数外部设置值的第二个选项?

这是在使用打字稿的 Angular2 class 组件的上下文中。

如果您不打算使用构造函数传入的值来实例化 class,那么 class 的每个实现在功能上将基本相同,尽管这可能是更好的编码实践使用 class 的第二个实现,其中数组设置为构造函数之外的值。