type R = Equal<undefined, undefined> // true
type R = Equal<never, undefined> // false
type R = Equal<unknown, undefined> // false
type R = Equal<string | boolean, undefined> // false
type R = Equal<string | undefined, undefined> // boolean
🔱 branching
Use unique branch identifiers to allow precise processing of the result.
🎭 predicate
Validate
AandBare "equal".Note that intersection type checks only works at first level. It cannot be check recursively, or else will run into infinite recursion if the type includes recursive types.