Напиши тип Junior Базовые типы обновлено
as const на вложенном массиве
Вопрос
Какой тип получится? Впишите тип.
const cfg = { ports: [80, 443] } as const;
type Ports = typeof cfg.ports; // /* ? */
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: readonly [80, 443]. as const действует глубоко: объект становится readonly, вложенный массив превращается в readonly-кортеж, числа остаются литералами.
Правильный тип
readonly [80, 443]
Разбор
as const действует глубоко: объект становится readonly, вложенный массив превращается в readonly-кортеж, числа остаются литералами. Без него было бы number[]. Отличие от Object.freeze: as const только про типы и действует на всю глубину, а freeze работает в рантайме и только на верхнем уровне.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.