Type Alias Remove<A, B>

Remove<A, B>: Empty extends B
    ? A
    : Remove<Shift<A>, Shift<B>>

Extracts from A what is not B

Type Parameters

  • A extends unknown[]
  • B extends unknown[]

It does not remove duplicates (so Remove<[0, 0, 0], [0, 0]> yields [0]). This is intended and necessary behavior.