Mam ogólny interfejs, taki jak ten przykład z jednym ograniczeniem typu:
export interface IExample<T extends MyClass> {
getById(id: number): T;
}
Czy można określić wiele ograniczeń typu zamiast tylko jednego?
typescript
typescript-generics
Fenton
źródło
źródło
<T extends MyInterfaceA & MyInterfaceB>
wymaga, aby typ implementował oba interfejsy.extends A|B
rozciąga się na A LUB B, a także naextends A & B
oba! więc może powinieneś określić oba w swojej odpowiedzi ...Rozwiązaniem tego problemu byłoby użycie superinterfejsu (który również odpowiada na pytanie „dlaczego miałbyś pozwolić interfejsowi na dziedziczenie z klasy”).
interface ISuperInterface extends MyClass, OtherClass { } export interface IExample<T extends ISuperInterface> { getById(id: number): T; }
źródło
Odwołaj się do komentarza o interfejsie pochodzącym z klasy ... co jest w nazwie?
Znalazłem to w sekcji 3.5 specyfikacji 0.9.0:
źródło