TypeScript · Senior · Запитання 22 з 75
Що дає тип this, що повертається, у методі класу?
class Query {
where(c: string): this { /* ... */ return this; }
}
class UserQuery extends Query { active(): this { return this; } }
new UserQuery().where('x').active();- ✓Правильна відповідь: Поліморфний
this: ланцюжок методів зберігає тип нащадка - 2Метод повертає завжди тип базового класу
Query - 3Це помилка:
thisне можна використовувати як тип
Пояснення
Якби where повертав Query, після нього .active() був би недоступний. Поліморфний this зручний для fluent API та білдерів. Є також this is T у type guard-методах.