TypeScript · Senior · Frage 25 von 75

Wie funktioniert der Trick UnionToIntersection?

type UnionToIntersection<U> =
  (U extends any ? (x: U) => void : never) extends (x: infer I) => void
    ? I : never;
Antwort zeigen

Richtige Antwort: Inferenz aus einer kontravarianten Position ergibt eine Intersection

Erklärung

Zuerst wird die Union in eine Union von Funktionen (x: A) => void | (x: B) => void verteilt. Beim Ableiten von I aus der (kontravarianten) Parameterposition werden mehrere Kandidaten dann zu einer Intersection verbunden: A & B. Ein Lehrbuchbeispiel für Programmierung auf Typebene.

Zum Weiterlesen

Fehler in der Frage

TypeScript · Senior · Frage 25

Teste dich selbst

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

Diesen Test machen