react-iztro
Version:
基于iztro实现的react紫微斗数星盘组件。A react component used to generate an astrolabe of ziweidoushu based on iztro.
20 lines (19 loc) • 1.15 kB
TypeScript
/// <reference types="react" />
type BuildPowersOf2LengthArrays<N extends number, R extends never[][]> = R[0][N] extends never ? R : BuildPowersOf2LengthArrays<N, [[...R[0], ...R[0]], ...R]>;
type ConcatLargestUntilDone<N extends number, R extends never[][], B extends never[]> = B["length"] extends N ? B : [...R[0], ...B][N] extends never ? ConcatLargestUntilDone<N, R extends [R[0], ...infer U] ? (U extends never[][] ? U : never) : never, B> : ConcatLargestUntilDone<N, R extends [R[0], ...infer U] ? (U extends never[][] ? U : never) : never, [
...R[0],
...B
]>;
type Replace<R extends number[], T> = {
[K in keyof R]: T;
};
type TupleOf<T, N extends number> = number extends N ? T[] : {
[K in N]: BuildPowersOf2LengthArrays<K, [[never]]> extends infer U ? U extends never[][] ? Replace<ConcatLargestUntilDone<K, U, []>, T> : never : never;
}[N];
type RangeOf<N extends number> = Partial<TupleOf<unknown, N>>["length"];
export type RangeOfNumber<From extends number, To extends number> = Exclude<RangeOf<To>, RangeOf<From>> | From;
export type NestedProps = {
children?: React.ReactNode;
className?: string;
};
export {};