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;

Пояснення

У Set немає числової індексної сигнатури, тому [number] не працює. Умовний тип з infer видобуває параметр будь-якого дженерика: Map<infer K, infer V>, Promise<infer R>. Вбудованої утиліти ElementType немає. Тут Id - string.

Де почитати

Помилка в запитанні

TypeScript · Senior · запитання 31

Перевірте себе

Пройдіть тест TypeScript · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест