2016-10-06 6 views
0
class DateComponent { 
    constructor(public months:string[] = [],public days:number[] = [] , public years:number[] = []) { } 

}; 

이렇게하면 Chrome에서 오류가 발생합니다. "="이 (가) 잘못되었습니다. 난 각도 2 및 typescript 및 webpack dev에 서버를 사용하고 있습니다.클래스 생성자에 대한 기본 배열 값은 2입니다.

어떻게 생성자의 매개 변수에 값을 전달할 수 있습니까? 당신이 경우

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

    constructor() { 

    } 
} 
+1

왜 생성자에있을 필요합니까 : 난 당신이 뭔가를 원하는 수정 이해한다면

? Angular2가 DI 용도로 Component의 생성자를 사용하고 있다는 것을 알고 계십니까? –

+0

@HarryNinh가 말하는 것은 무엇입니까? [그렇지 않으면 괜찮아 보입니다] (https://www.typescriptlang.org/play/#src=class%20DateComponent%20%7B%0D%0A%20%20constructor (public % 20months % 3Astring % 5B % 5D % 20 % 3D % 20 % 5B % 5D % 2C 공용 % 20 일 % 3A 숫자 % 5B % 5D % 20 % 3D % 20 % 5B % 5D % 20 % 2C % 20 % 20 % % 3A % 5B % 5D % 20 % 3D % 20 % 5B % 5D) % 20 % 7B % 20 % 7D % 0D % 0A % 0D % 0A % 7D % 3B). – rinukkusu

+0

그래, 알 겠어.하지만 기술적으로 유효하다면, 왜 내가 오류가 나는거야? –

답변

0

처럼 해리는 생성자에서 반원 내가 생성자 중 그 이동 좋을 것 각도 2.

에서 의존성 주입을 위해 예약되어 정의, 주석에 말한다 생성자의 선택적 매개 변수를 원한다면 "?"를 추가해야합니다. 그러나 개체의 매개 변수는 생성자를 벗어나 정의해야합니다.

anger2에서 일부 매개 변수는 생성자에서 정의되지만 주석 속성 (@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; 
    } 

    }; 
+0

예. 알 겠어. 그래도 기술적으로 유효하다면 왜 오류가 발생합니까? –

+1

이고 typescript 함수의 기본값을 정의하고 전달할 수 있습니다. –

+0

DI를 통해 인스턴스화하는 구성 요소, 지시문 또는 서비스의 생성자에 없습니다. – rinukkusu

0

:

+1

아니요 .. 나는 생성자를 사용하여 클래스의 요소를 정의하고 거기에 값을 전달하려고합니다. –

+0

왜 이것을 angular2 구성 요소에서 수행하려고합니까 ?? 당신은 우리에게 plunker 또는 더 많은 코드를 보낼 수 있습니까 ?? –

관련 문제