Напиши тип Middle Утилитарные типы обновлено
Readonly не глубокий
Вопрос
Какой тип у поля tags после Readonly? Впишите тип.
type Post = { title: string; tags: string[] };
type T = Readonly<Post>['tags']; // /* ? */
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: string[]. Readonly добавляет модификатор readonly только самим полям: переприсвоить post.tags = [] нельзя.
Правильный тип
string[]
Разбор
Readonly добавляет модификатор readonly только самим полям: переприсвоить post.tags = [] нельзя. Тип значения остаётся прежним, string[], поэтому post.tags.push('x') компилируется. Для неизменяемого массива нужен readonly string[] или рекурсивный DeepReadonly.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.