Выбор ответа Junior Базовые типы спрашивают часто обновлено
Тип строки в let и const
Вопрос
Какие типы TypeScript выведет для a и b?
const a = 'GET';
let b = 'GET';
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: a: 'GET', b: string. const нельзя переприсвоить, поэтому TypeScript сохраняет литеральный тип 'GET'.
Варианты ответа
a: 'GET',b: stringправильный ответa: string,b: stringa: 'GET',b: 'GET'a: string,b: 'GET'
Разбор
const нельзя переприсвоить, поэтому TypeScript сохраняет литеральный тип 'GET'. Переменной let позже можно присвоить другую строку, и тип расширяется до string (widening).
Остальные варианты путают направление: расширяется именно let. Чтобы let получил литерал, нужна аннотация let b: 'GET' = 'GET' или as const.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.