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();
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.

Zum Weiterlesen

Fehler in der Frage

TypeScript · Senior · Frage 22

Teste dich selbst

Mach den Test TypeScript · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen