2017-05-08 2 views
1

각도 4 타이프 라이터의 장식은 여기

let isBrowserFactory2=function(@Inject(PLATFORM_ID) platformId: string){ return isPlatformBrowser(platformId);} 

다음과 같은 오류를 가져옵니다 다음 코드 유효하지 않습니다 :

Decorators are not valid here 

그리고이 하나

let isBrowserFactory=(@Inject(PLATFORM_ID) platformId: string):boolean=> isPlatformBrowser(platformId) 

Expression expected 오류를 가져옵니다.

  • 왜 typescript의 매개 변수 데코레이터를 함수에 사용할 수 없습니까?
  • @Inject()을 사용하여 어떻게 팩토리 메서드에 무엇인가를 주입 할 수 있습니까?

답변

1

생성자에 @Inject을 사용하십시오.

isBrowserFactory: boolean; 

constructor(@Inject(PLATFORM_ID) platformId string) { 
    this.isBrowserFactory = this.isPlatformBrowser(platformId); 
} 

당신이 platformIdPLATFORM_ID를 주입 선언하는이 방법. 그리고 당신은 당신의 메소드 isPlatformBrowser을 호출 할 수 있습니다. 나는 그 값이 부울을 리턴합니다.

+0

기본적으로 올바르지 만 생성자뿐만 아니라'class' 메소드도 지원됩니다. 오브젝트 리터럴 간결 메소드가 지원되지 않습니다. thouigh –

+0

@AluanHaddad 클래스 선언 전에 또는 생성자 내부에서 데코레이터를 사용해야한다고 생각했습니다. – SrAxi

+0

장식자는 클래스 멤버, 클래스 멤버 매개 변수 및 클래스 자체에 유효합니다. –