Напиши тип Junior Утилитарные типы обновлено
ReturnType функции с as const
Вопрос
Какой тип получится? Впишите тип.
function ok() {
return { ok: true, code: 200 } as const;
}
type R = ReturnType<typeof ok>; // /* ? */
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: { readonly ok: true; readonly code: 200 }. as const делает все свойства readonly и не расширяет литералы: true остаётся true (а не boolean), 200 остаётся 200.
Правильный тип
{ readonly ok: true; readonly code: 200 }
Разбор
as const делает все свойства readonly и не расширяет литералы: true остаётся true (а не boolean), 200 остаётся 200. Без as const было бы { ok: boolean; code: number }. Так часто типизируют результаты, по которым потом делают сужение: if (r.ok).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.