Выбор ответа Junior Базовые типы спрашивают часто обновлено

Тип строки в let и const

Вопрос

Какие типы TypeScript выведет для a и b?

const a = 'GET';
let b = 'GET';

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: a: 'GET', b: string. const нельзя переприсвоить, поэтому TypeScript сохраняет литеральный тип 'GET'.

Варианты ответа

  1. a: 'GET', b: stringправильный ответ
  2. a: string, b: string
  3. a: 'GET', b: 'GET'
  4. a: string, b: 'GET'

Разбор

const нельзя переприсвоить, поэтому TypeScript сохраняет литеральный тип 'GET'. Переменной let позже можно присвоить другую строку, и тип расширяется до string (widening).

Остальные варианты путают направление: расширяется именно let. Чтобы let получил литерал, нужна аннотация let b: 'GET' = 'GET' или as const.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.