2016-08-26 2 views
0

클래스 객체 내부의 데코레이터 기능이 해당 객체 내부의 속성에 액세스하는 방법을 설명합니다. 아래의 가상 예제에서 this.name은 "JohnDoe"라는 예상 이름을 반환하지 않으며, 항상 비어 있습니다.Typescript : 데코레이터 선언 내 클래스의 다른 함수/속성에 액세스

class First { 
    name:string 
    constructor(name:string) { 
     this.name = name 
    } 

    nameProperty(target: any, key: string) { 
     ... 
     console.log(this.name); //<--- this is always empty. was expecting "JohnDoe" 
     ... 
    } 
} 

let f = First("JohnDoe") 
class Second { 
    @f.nameProperty 
    dummyName:string 

} 

답변

1

this입니다. 다음과 같은 화살표 기능으로 캡처 해보십시오.

class First { 
    name:string 
    constructor(name:string) { 
     this.name = name 
    } 

    nameProperty() 
    { 
     return (target: any, key: string) => 
     { 
      console.log(this.name); 
     } 
    } 
} 

let f = new First("JohnDoe"); 
class Second { 
    @f.nameProperty() 
    dummyName:string 

} 
+0

메이트, 당신은 전설입니다! 감사 – Rjk

관련 문제