Напиши тип Junior Базовые типы обновлено

Тип let от константы

Вопрос

Какой тип TypeScript выведет для b? Впишите тип вместо /* ? */.

const a = 'ok';
let b = a;
// b: /* ? */

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

Напишите тип, как написали бы в коде.

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

Коротко

Правильный тип: string. У a литеральный тип 'ok', но при инициализации изменяемой переменной let литерал расширяется до string: позже в b можно записать любую строку.

Правильный тип

string

Разбор

У a литеральный тип 'ok', но при инициализации изменяемой переменной let литерал расширяется до string: позже в b можно записать любую строку. Чтобы оставить литерал, нужна аннотация let b: 'ok' = a.

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

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