TypeScript · Senior · Frage 31 von 75

Wie bekommt man aus einem Wert den Elementtyp eines Set<T> oder Map<K, V>?

const ids = new Set(['a', 'b']);
type Id = typeof ids extends Set<infer T> ? T : never;
Antwort zeigen

Richtige Antwort: Mit einem bedingten Typ mit infer auf dem Muster Set<infer T>

Erklärung

Set hat keine numerische Index-Signatur, also funktioniert [number] nicht. Ein bedingter Typ mit infer zieht den Parameter jedes Generics heraus: Map<infer K, infer V>, Promise<infer R>. Ein eingebautes Utility ElementType gibt es nicht. Hier ist Id vom Typ string.

Zum Weiterlesen

Fehler in der Frage

TypeScript · Senior · Frage 31

Teste dich selbst

Mach den Test TypeScript · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen