Ich versuche, eine Multi-Mixin-Hilfsfunktion einzugeben, die eine Map von Konstruktoren akzeptiert und eine Map dieser Konstruktoren zurückgibt, die mit einer neuen Schnittstelle erweitert wurde.
Betrachten Sie die folgenden konstruierten Basisklassen:
%Vor%Ich habe eine Mixin-Hilfsfunktion, die eine Zuordnung dieser Klassen akzeptiert und optional erweiterte Versionen von ihnen zurückgibt. Ohne Typisierung sieht das so aus:
%Vor%Wenn ich jedoch diese Hilfsfunktion vollständig austippe, führen meine Typisierungen zu einem sehr merkwürdigen, nicht zuweisbaren Compilerfehler. Hier ist ein Link zum TypeScript Compiler Playground, wo Sie die Typings, die ich verwende, und den damit verbundenen Fehler sehen können:
Der Fehler, den ich bekomme, lautet:
%Vor% Dieser Fehler scheint mir etwas seltsam zu sein. Es ist so, als ob der Compiler die Typinformationen für die Klasse Alpha
oder etwas verliert. Aber es ist wahrscheinlicher, dass ich irgendwo einen Fehler mache.
Kann mir jemand helfen herauszufinden, wo ich falsch gelaufen bin?
Es gibt eine Eigenart in der Art, wie Sie von einem generischen Parameter ableiten können, der generische Parameter muss new(...args: any[]) => any
erweitern (Parameter MÜSSEN ...args: any[]
sein). Das können wir in diesem PR sehen. Um dies zu umgehen, können wir eine Hilfsfunktion in der Funktion Fooable
verwenden:
Tags und Links typescript