2017-10-03 1 views
0

나중에 사용할 수있는 반환 형식과 람다 함수를 정의하기 -어떻게 그런 같은 제네릭을 사용하여 클래스를 일반적인

export class MyClass<T> 
{ 
    constructor(private myCallback:()=>T) 
    { 
     ... 
    } 
} 

내 콜백 유형의 새 개체를 반환하는 람다 fucntion입니다 T. 나는 내가 빌드 오류로 실행 해요 그러나 이러한

let t:T = this.myCallback() ; 

로 MyClass의 내부 코드를 작성할 수 있도록하고 싶습니다. 문법이 어딘가에서 깨진 것 같지만 어디서 모르겠다. 누구든지 도와 줄 수 있습니까?

답변

1

다음 컴파일 잘 here :

class MyClass<T> { 
    constructor(private myCallback:() => T) {} 

    thing(): T { 
    const t: T = this.myCallback(); 
    return t; 
    } 
} 

let s: string = new MyClass<string>(() => "hello").thing();