2017-10-03 11 views
0

générique j'ai une classe en utilisant des médicaments génériques comme tels -Comment définir une fonction lambda avec un type de retour qui peut être utilisé plus tard avec un

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

Mon rappel est une fucntion lambda qui retourne un nouvel objet de type T. Je voudrais être en mesure d'écrire du code dans MyClass en tant que tel

let t:T = this.myCallback() ; 

mais je suis en cours d'exécution dans des erreurs de construction. On dirait que la syntaxe est cassée quelque part mais je ne sais pas où. Quelqu'un peut-il aider?

Répondre

1

Les compiles suivants très bien 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();