Напиши тип Senior Условные и mapped-типы обновлено
Только строковые ключи
Вопрос
Как в mapped type отфильтровать ключи, оставив только те, что подходят под условие? Какое ключевое слово переименовывает ключ?
type StringKeys<T> = { [K in keyof T as T[K] extends string ? K : never]: T[K] };
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: as. Ответ Почему так as в mapped type переназначает ключ, а never его выбрасывает.
Правильный тип
as
Разбор
Ответ
as
Почему так
as в mapped type переназначает ключ, а never его выбрасывает. Так собирают фильтры по типу значения и переименования вида on${Capitalize<K>}.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.