@msom/common
Version:
@msom/common
26 lines (22 loc) • 626 B
text/typescript
export type JSTypeMap = {
number: number;
string: string;
boolean: boolean;
bigint: bigint;
function: (...args: unknown[]) => unknown;
undefined: undefined;
symbol: symbol;
object: object;
null: null;
unknown: unknown;
};
export type JSTypes = keyof JSTypeMap;
export type ArgsType<T extends JSTypes[]> = [
...{
[I in keyof T]: JSTypeMap[T[I]];
}
];
type VecHelper<T extends number, K = number, Acc extends K[] = []> = Acc['length'] extends T
? Acc
: VecHelper<T, K, [...Acc, K]>;
export type Vec<T extends number, K = number> = T extends 0 ? K[] : VecHelper<T, K>;