2017-09-16 1 views
-1

est le code, je suis ici en train de réaliser:Comment passer une interface en argument et récupérer un appel anonyme en TypeScript?

this._customHttp.httpPostService('app/fetchGridDetails',this.req,new 
    InterfaceName() { 
     onEvent(str :string) { 
      console.log(str); 
     } 
    }); 
+1

peut « pas de chance » être exprimé dans un message d'erreur concret? –

+0

Qu'essayez-vous d'accomplir? A quoi sert l'interface passée? –

+1

https://stackoverflow.com/questions/41623998/typescript-optional-callback-parameter-does-not-match-anonymous-function-passed? – Walfrat

Répondre

3

Si c'est une interface et non une classe, vous ne le faites pas new vers le haut. Vous pouvez simplement créer un objet qui implémente l'interface en ligne:

this._customHttp.httpPostService('app/fetchGridDetails', this.req, 
    <InterfaceName>{ 
     onEvent(str: string) { 
      console.log(str); 
     } 
    }); 

Vous aurez probablement même pas besoin d'écrire explicitement le nom de l'interface. Si l'objet a des méthodes correctes sur ce qui sont attendues par httpPostService, tapuscrit devrait compiler:

this._customHttp.httpPostService('app/fetchGridDetails', this.req, 
    { 
     onEvent(str: string) { 
      console.log(str); 
     } 
    }); 
+0

Merci beaucoup. Cela fonctionne parfaitement. Dieu vous bénisse –