Checks A and B are equal.
A
B
type R = IsEqual<1, 1> // truetype R = IsEqual<any, any> // truetype R = IsEqual<boolean, boolean> // truetype R = IsEqual<true, true> // truetype R = IsEqual<[1], [1]> // truetype R = IsEqual<boolean, true> // falsetype R = IsEqual<any, 1> // falsetype R = IsEqual<[any], [1]> // falsetype R = IsEqual<{ a: 1 }, { a: 1; b: 2 }> // false Copy
type R = IsEqual<1, 1> // truetype R = IsEqual<any, any> // truetype R = IsEqual<boolean, boolean> // truetype R = IsEqual<true, true> // truetype R = IsEqual<[1], [1]> // truetype R = IsEqual<boolean, true> // falsetype R = IsEqual<any, 1> // falsetype R = IsEqual<[any], [1]> // falsetype R = IsEqual<{ a: 1 }, { a: 1; b: 2 }> // false
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.
💀 deprecated since 8.0.0: use Equal instead.
Equal
Checks
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.