[英]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.