# Subtract

`type` in `services` · v0.7.1

<https://docs.seedcord.org/packages/services/0.7.1/types/subtract>

Returns the difference between two numbers.

Note: - A or B can only support `-999` ~ `999`.

## Examples

```ts
import type {Subtract, PositiveInfinity} from 'type-fest';

type A = Subtract<333, 222>;
//=> 111

type B = Subtract<111, -222>;
//=> 333

type C = Subtract<-111, 222>;
//=> -333

type D = Subtract<18, 96>;
//=> -78

type E = Subtract<PositiveInfinity, 9999>;
//=> Infinity

type F = Subtract<PositiveInfinity, PositiveInfinity>;
//=> number

 Numeric
```

## Declaration

```ts
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>
```
