IsEqual: <G>() => G extends A ? 1 : 2 extends <G>() => G extends B ? 1 : 2
    ? true
    : false

Returns a boolean for whether the two given types are equal.

Type Parameters

  • A
  • B
import type {IsEqual} from 'type-fest';

// This type returns a boolean for whether the given array includes the given item.
// `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
type Includes<Value extends readonly any[], Item> =
Value extends readonly [Value[0], ...infer rest]
? IsEqual<Value[0], Item> extends true
? true
: Includes<rest, Item>
: false;