source: node_modules/ts-toolbelt/out/Number/Range.d.ts

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.8 KB
Line 
1import { IterationOf } from '../Iteration/IterationOf';
2import { Iteration } from '../Iteration/Iteration';
3import { Prepend } from '../List/Prepend';
4import { Prev } from '../Iteration/Prev';
5import { Next } from '../Iteration/Next';
6import { Cast } from '../Any/Cast';
7import { Way } from '../Iteration/_Internal';
8import { List } from '../List/List';
9import { Extends } from '../Any/Extends';
10import { Pos } from '../Iteration/Pos';
11/**
12 * @hidden
13 */
14declare type RangeForth<From extends Iteration, To extends Iteration, L extends List = []> = {
15 0: RangeForth<Prev<From>, To, Prepend<L, Pos<From>>>;
16 1: L;
17}[Extends<From, To>];
18/**
19 * @hidden
20 */
21declare type RangeBack<From extends Iteration, To extends Iteration, L extends List = []> = {
22 0: RangeBack<Next<From>, To, Prepend<L, Pos<From>>>;
23 1: L;
24}[Extends<From, To>];
25/**
26 * @hidden
27 */
28declare type __Range<From extends Iteration, To extends Iteration, way extends Way> = {
29 '->': RangeForth<To, Prev<From>>;
30 '<-': RangeBack<From, Next<To>>;
31}[way];
32/**
33 * @hidden
34 */
35export declare type _Range<From extends number, To extends number, way extends Way> = __Range<IterationOf<From>, IterationOf<To>, way> extends infer X ? Cast<X, (string | number)[]> : never;
36/**
37 * Create a range of * *number**s
38 * @param From to start with
39 * @param To to end with
40 * @param way (?=`'->'`) to reverse it
41 * @returns `string[] | number[] | boolean[]`
42 * @example
43 * ```ts
44 * import {N} from 'ts-toolbelt'
45 *
46 * type test0 = N.Range<'-2', '1'> // ['-2', '-1', '0', '1']
47 * type test1 = N.Range<'-2', '1', '->'> // ['-2', '-1', '0', '1']
48 * type test2 = N.Range<'-2', '1', '<-'> // ['1', '0', '-1', '-2']
49 * ```
50 */
51export declare type Range<From extends number, To extends number, way extends Way = '->'> = From extends unknown ? To extends unknown ? _Range<From, To, way> : never : never;
52export {};
Note: See TracBrowser for help on using the repository browser.