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
A
andB
are 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.