Напиши тип Senior Объединения и сужение обновлено

Где сохранится литеральный тип

Вопрос

Какой конструкцией проверить объект на соответствие Config, но сохранить точные литеральные типы значений?

const config = { mode: 'dark', port: 80 } /* ? */;

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

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

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

Коротко

Правильный тип: satisfies Config. Ответ Почему так : Config расширяет тип до Config, и mode станет string. satisfies Config проверяет совместимость, но оставляет 'dark' литералом - дальше по нему можно делать точное сужение.

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

satisfies Config

Разбор

Ответ

satisfies Config

Почему так

: Config расширяет тип до Config, и mode станет string. satisfies Config проверяет совместимость, но оставляет 'dark' литералом - дальше по нему можно делать точное сужение.

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

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