簡體   English   中英

類構造函數angular 2的默認數組值

[英]Default array value to class constructor angular 2

class DateComponent {
  constructor(public months:string[] = [],public days:number[] = [] , public years:number[] = []) { }

};

這給我在Chrome中的錯誤。 說“ =”無效。 我正在使用angular 2和typescript和webpack開發服務器。

如何將值傳遞給構造函數中的參數?

就像哈里在評論中說的那樣,在構造函數中定義類成員保留用於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;
     }

    };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM