类构造函数angular 2的默认数组值

Default array value to class constructor angular 2

本文关键字:默认 数组 构造函数 angular      更新时间:2023-09-26
class DateComponent {
  constructor(public months:string[] = [],public days:number[] = [] , public years:number[] = []) { }
};

这是给我错误在Chrome。表示"="无效。我用的是angular 2、typescript和webpack dev server。

如何将值传递给构造函数中的参数?

就像Harry在评论中说的,在构造函数中定义类成员是为Angular 2中的依赖注入保留的。

我建议将它们从构造函数中移出:

class DateComponent {
  public months: Array<string> = [];
  public days: Array<string> = [];
  public years: Array<string> = [];
  constructor() { 
  }
}

如果想要构造函数的可选参数,必须添加"?"。但是对象的形参必须定义在构造函数之外。

在angular2中,你会看到一些参数定义在构造函数中,但这在注解(@Component, @Directive,…)中使用,它们被定义为类属性。

如果我理解正确的话,你想要这样的东西:

class DateComponent {
      public months: [] = [];
      public days: [] = [];
      public years: [] = [];
      constructor(_months?:string[],_days?:number[], _years?:number[]) {
       this.months = _months;
       this.days = _days;
       this.years = _years;
     }
    };