Ich habe eine generische Schnittstelle wie dieses Beispiel mit einer einzelnen Typeinschränkung:
export interface IExample<T extends MyClass> {
getById(id: number): T;
}
Ist es möglich, mehrere Typbeschränkungen anstelle von nur einer anzugeben?
typescript
typescript-generics
Fenton
quelle
quelle
<T extends MyInterfaceA & MyInterfaceB>
erfordert , dass die Art , beide Schnittstellen implementieren.extends A|B
is verstehe, erstreckt sich A ODER B ebenso wieextends A & B
beide! Vielleicht sollten Sie beide in Ihrer Antwort angeben ...Eine Lösung hierfür wäre die Verwendung einer Super-Schnittstelle (die auch die Frage beantwortet, warum eine Schnittstelle von einer Klasse erben darf).
interface ISuperInterface extends MyClass, OtherClass { } export interface IExample<T extends ISuperInterface> { getById(id: number): T; }
quelle
Verweisen Sie auf den Kommentar zu einer Schnittstelle, die von einer Klasse stammt ... was ist in einem Namen?
Ich fand dies in Abschnitt 3.5 der 0.9.0-Spezifikation:
quelle