quran-meta
Version:
Library with meta data and functionality related to Holy Quran
12 lines (8 loc) • 476 B
text/typescript
type GrowToSize<T, N extends number, A extends T[]>
= A["length"] extends N ? A : GrowToSize<T, N, [...A, T]>
export type FixedArray<T, N extends number> = GrowToSize<T, N, []>
export type ArrayOfSameLength<T extends unknown[], U> = {
[K in keyof T]: U;
}
// Utility type for numeric range
export type LessThan<TNumber extends number, TArray extends unknown[] = []> = TNumber extends TArray["length"] ? TArray[number] : LessThan<TNumber, [...TArray, TArray["length"]]>