Typeseedcordv0.10.6
Subtract
Returns the difference between two numbers.
Note: - A or B can only support -999-999 ~ 999999.
type Subtract<A extends number, B extends number> = number extends A | B ? number // Handle cases when A and B are both +/- infinity : A extends B & (PositiveInfinity | NegativeInfinity) ? number // Handle cases when A is - infinity or B is + infinity : A extends NegativeInfinity ? NegativeInfinity : B extends PositiveInfinity ? NegativeInfinity // Handle cases when A is + infinity or B is - infinity : A extends PositiveInfinity ? PositiveInfinity : B extends NegativeInfinity ? PositiveInfinity // Handle case when numbers are equal to each other : A extends B ? 0 // Handle cases when A or B is 0 : A extends 0 ? ReverseSign<B> : B extends 0 ? A // Handle remaining regular cases : SubtractPostChecks<A, B>type Subtract<A extends number, B extends number> = number extends A | B ? number // Handle cases when A and B are both +/- infinity : A extends B & (PositiveInfinity | NegativeInfinity) ? number // Handle cases when A is - infinity or B is + infinity : A extends NegativeInfinity ? NegativeInfinity : B extends PositiveInfinity ? NegativeInfinity // Handle cases when A is + infinity or B is - infinity : A extends PositiveInfinity ? PositiveInfinity : B extends NegativeInfinity ? PositiveInfinity // Handle case when numbers are equal to each other : A extends B ? 0 // Handle cases when A or B is 0 : A extends 0 ? ReverseSign<B> : B extends 0 ? A // Handle remaining regular cases : SubtractPostChecks<A, B>