TypeScript · Senior · Запитання 31 з 75
Як отримати тип елемента Set<T> або Map<K, V> зі значення?
const ids = new Set(['a', 'b']);
type Id = typeof ids extends Set<infer T> ? T : never;- ✓Правильна відповідь: Через умовний тип з
inferза шаблономSet<infer T> - 2Через індексний доступ
(typeof ids)[number] - 3Через утиліту
ElementType<typeof ids>зі стандартної бібліотеки
Пояснення
У Set немає числової індексної сигнатури, тому [number] не працює. Умовний тип з infer видобуває параметр будь-якого дженерика: Map<infer K, infer V>, Promise<infer R>. Вбудованої утиліти ElementType немає. Тут Id - string.