SetDifference
SetDifference (same as Exclude)
@example
// Expect: "1"
SetDifference<'1' | '2' | '3', '2' | '3' | '4'>;
// Expect: string | number
SetDifference<string | number | (() => void), Function>;
type SetDifference<A, B> = A extends B ? never : A;