diff --git a/source/greater-than-or-equal.d.ts b/source/greater-than-or-equal.d.ts index b99d36ab5..e9a7615d2 100644 --- a/source/greater-than-or-equal.d.ts +++ b/source/greater-than-or-equal.d.ts @@ -19,6 +19,12 @@ GreaterThanOrEqual<1, 5>; */ export type GreaterThanOrEqual = number extends A | B ? never - : A extends B ? true : GreaterThan; + : A extends number // For distributing `A` + ? B extends number // For distributing `B` + ? A extends B + ? true + : GreaterThan + : never // Should never happen + : never; // Should never happen export {}; diff --git a/test-d/greater-than-or-equal.ts b/test-d/greater-than-or-equal.ts index 828d57efd..422fe8d2b 100644 --- a/test-d/greater-than-or-equal.ts +++ b/test-d/greater-than-or-equal.ts @@ -27,6 +27,7 @@ expectType>({} as boolean); expectType>({} as boolean); expectType>({} as boolean); expectType>({} as boolean); +expectType>({} as boolean); expectType>(true); expectType>(true); diff --git a/test-d/less-than.ts b/test-d/less-than.ts index 37b968575..805f21e30 100644 --- a/test-d/less-than.ts +++ b/test-d/less-than.ts @@ -26,6 +26,7 @@ expectType>({} as boolean); expectType>({} as boolean); expectType>({} as boolean); expectType>({} as boolean); +expectType>({} as boolean); expectType>(false); expectType>(false);