2017-06-16 3 views
3

Ich versuche, einige TypeScript-Definitionen für bereits vorhandene Module zu erstellen. In einer besonderen Schnittstelle implementiert werden, sieht die Signatur wie folgt aus:Automatisches Ableiten von Typen von überschriebenen Schnittstellen in TypeScript

type NextFunction<T> =() => T; 
type Response = string[] | Promise<string[]>; 

interface IPage { 
    getBodyClasses(next: NextFunction<Response>): Response; 
} 

Der Parameter und Rückgabestrukturen festgelegt sind, und ich würde wirklich die Parametertypen sind meiner überschrieben möchte in der Lage sein haben Typoskript ableiten, was Methoden. Wenn ich jedoch meine Überschreibung erstelle, sehe ich, dass der Parameter implizit den Typ any hat.

class Page implements IPage { 
    getBodyClasses(next) { 
    return next(); 
    } 
} 

Gibt es eine Möglichkeit getBodyClasses als dedizierte Überschreibung zu markieren, so dass die Typen für die Parameter automatisch abgeleitet werden? Es würde bereits sagen, dass Page war falsch implementieren die Schnittstelle, wenn ich next als number eingegeben, so verstehe ich nicht ganz, warum es nicht auch dann den Typ von next ist das gleiche wie die Schnittstelle.

+0

Hier ist ein Link für die Ausgabe, die Sie für zukünftige Leser geöffnet: [Typ-Inferenz für die Methode überschreibt in abgeleiteten Klassen] (https://github.com/Microsoft/Typoskript/Probleme/16590) –

Antwort

Verwandte Themen