Nr 238 · 21 sierpnia 2026 · Bezlitosna
UniaNaPrzecięcie
Zaimplementuj `UnionToIntersection<U>`, aby `A | B` stało się `A & B`. Nie ma na to operatora — rozwiązanie wykorzystuje sposób, w jaki kompilator wnioskuje z parametrów funkcji.
01
Zagadka
Par 5Zagadka
union-to-intersection.tsPodejście 1 z 5Jeszcze nie sprawdzone
Zastąp ??? — rozwiązanie sprawdzamy przypadkami poniżej. Tab wcina; naciśnij Escape, a potem Tab, by wyjść fokusem.
Testy
4UnionToIntersection<{ a: string } | { b: number }>—→ { a: string } & { b: number }UnionToIntersection<string>—→ stringUnionToIntersection<'a' | 'b'>—→ neverUnionToIntersection<{ x: 1 }>—→ { x: 1 }
Jak oceniamy test Dokładna równość typów, nie przypisywalność — przecięcie to nie to samo co spłaszczony obiekt.
Jak poszło innym
Tę zagadkę rozwiązało jak dotąd mniej niż 5 osób. Rozkład pojawi się, gdy próbka będzie na tyle duża, by coś znaczyć.
Gra na krótkim dystansie
Najmniej znakówNie ma jeszcze publicznych wyników.
02
Rozwiązanie z komentarzem
Ten komentarz ukaże się 24 godziny po zamknięciu zagadki.
