2017-06-16 2 views
3

Ich habe eine Schnittstelle, wie diese wollenWie kann ich eine Schnittstelle zu einem anonymen Callback-Funktion in Typoskript anwenden

interface CallBackHandler{ 
(err: Error, response: {statusCode: number, body: object}):void 
} 

und i sieht diese Schnittstelle an den Rückruf dieser

request({ 
    url: url, 
    method: "GET", 
    withCredentials: false, 
    json: true, 
    headers: headers 
    }, (err, response) => { 
    this.handleResponse(err, response, resolve, reject); 
    }); 

anzuwenden aber ich bekomme einen Fehler, der sagt, dass die Funktion etwas zurückgeben muss, wenn der Rückgabetyp nicht ungültig ist, wenn ich die Schnittstelle hinzufüge

(err, response): CallBackHandler => { 
    this.handleResponse(err, response, resolve, reject); 
    } 

Wie kann diese Schnittstelle richtig angewendet werden?

Antwort

0

Sie können so etwas wie

request({ 
    url: url, 
    method: "GET", 
    withCredentials: false, 
    json: true, 
    headers: headers 
}, (err: Error, response: {statusCode: number, body: object}) => { 
    this.handleResponse(err, response, resolve, reject); 
}); 
1

haben Wenn request() bereits die Art Signatur hat:

function request(options, callback: CallBackHandler) { 
    ... 
} 

Dann sollten Sie nichts tun müssen, als Callback Sie werden bieten Typ- entsprechend geprüft.

Wenn diese Funktion nicht bereits diese Art Signatur haben, und Sie möchten manuell Rückruf CallBackHandler werfen, dann müssen Sie die Callback-Funktion in Klammern wickeln und diesen Ausdruck werfen, etwa so:

request({ 
    ...etc 
}, ((err, response) => { 
    this.handleResponse(err, response, resolve, reject); 
}) as CallBackHandler); 
Verwandte Themen