TypeScript · Middle · Pytanie 51 z 75
Dlaczego Omit<Circle | Square, 'id'> traci unię dyskryminowaną?
type DistributiveOmit<T, K extends PropertyKey> = T extends any ? Omit<T, K> : never;- ✓Poprawna odpowiedź:
Omitużywakeyofcałej unii (tylko wspólne klucze); wersja dystrybutywna stosuje go do każdego członu - 2
Omitw ogóle nie działa z uniami - 3Usuwa
idtylko z pierwszego członu
Wyjaśnienie
keyof (A | B) zawiera tylko wspólne klucze, więc właściwości specyficzne znikają. Typ warunkowy rozkłada się na unię.