Unie
Exclude
Usuwa z unii każdy składnik przypisywalny do U.
Czym jest
Dystrybutywny typ warunkowy i najczystszy przykład tego, po co jest dystrybucja. T jest gołym parametrem po lewej stronie extends, więc warunek wykonuje się raz na składnik unii, a wyniki wracają w unię — pasujące składniki stają się never i znikają, bo never w unii to nic.
Przykłady
Exclude<'a' | 'b' | 'c', 'b'>→"a" | "c"Exclude<string | number | null, null>→string | numberExclude<'a' | 'b', 'a' | 'b'>→neverWykluczenie wszystkiego zostawia
never, co jest właściwą nazwą pustej unii.
Każdy rozwinięty typ powyżej wypisał TypeScript 6.0.3, nie ręka człowieka.
Czego nie robi
- Nie usuwa właściwości z obiektu.
Excludedziała na uniach; obiektowym odpowiednikiem jestOmit. - Nie wymaga dokładnego dopasowania. Znika każdy składnik *przypisywalny* do
U, więcExclude<string | "a", string>usuwa oba.
Wniosek
Jeśli Exclude zdaje się nic nie robić, lewa strona prawdopodobnie nie jest unią — dystrybucja potrzebuje składników.

