Вот код из видео, который вызывает вопросы:
type Status = 'success' | 'error' | 'loading';
type StatusWithBrackets = {
[K in Status]: `[${K}]`
}[Status];
💡 Что здесь происходит?
1️⃣ **[K in Status]: \[${K}]`** Мы создаем объект на уровне типов. Для каждого значения из Status ('success' | 'error' | 'loading'`) генерируются ключи и их значения. Например:
{
success: "[success]",
error: "[error]",
loading: "[loading]"
}
2️⃣ [Status]
Эта часть "вытаскивает" все значения, которые соответствуют ключам Status.
То есть:
"[success]" | "[error]" | "[loading]"
🛠️ Итог: StatusWithBrackets превращается в объединение строк:
"[success]" | "[error]" | "[loading]".
#typescript