TypeScript · Senior · Frage 22 von 75
Was bringt der Rückgabetyp this in einer Klassenmethode?
class Query {
where(c: string): this { /* ... */ return this; }
}
class UserQuery extends Query { active(): this { return this; } }
new UserQuery().where('x').active();- 1Polymorphes
this: eine Methodenkette behält den Typ der Unterklasse - 2Es ist ein Fehler:
thislässt sich nicht als Typ verwenden - 3Die Methode liefert immer den Typ der Basisklasse
Query
Antwort zeigen
Richtige Antwort: Polymorphes this: eine Methodenkette behält den Typ der Unterklasse
Erklärung
Würde where den Typ Query liefern, wäre .active() danach nicht verfügbar. Polymorphes this ist praktisch für Fluent APIs und Builder. Es gibt auch this is T in Type-Guard-Methoden.