TypeScript · Senior · Pytanie 25 z 75

Jak działa trik UnionToIntersection?

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

Wyjaśnienie

Najpierw unia rozkłada się na unię funkcji (x: A) => void | (x: B) => void. Potem przy wnioskowaniu I z (kontrawariantnej) pozycji parametru wielu kandydatów łączy się w przecięcie: A & B. To podręcznikowy przykład programowania na poziomie typów.

Do poczytania

Błąd w pytaniu

TypeScript · Senior · pytanie 25

Sprawdź się

Rozwiąż test TypeScript · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test