isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
23 lines • 788 B
TypeScript
/**
* Helper type to add two other types.
*
* From: https://gist.github.com/ryandabler/8b4ff4f36aed47bc09acc03174638468
*/
export type Add<A extends number, B extends number> = Length<[
...BuildTuple<A>,
...BuildTuple<B>
]>;
/**
* Helper type to subtract two other types.
*
* From: https://gist.github.com/ryandabler/8b4ff4f36aed47bc09acc03174638468
*/
export type Subtract<A extends number, B extends number> = A extends A ? BuildTuple<A> extends [...infer U, ...BuildTuple<B>] ? Length<U> : never : never;
type BuildTuple<L extends number, T extends unknown[] = []> = T extends {
length: L;
} ? T : BuildTuple<L, [...T, unknown]>;
type Length<T extends unknown[]> = T extends {
length: infer L;
} ? L : never;
export {};
//# sourceMappingURL=AddSubtract.d.ts.map