Skip to content

Latest commit

 

History

History
40 lines (30 loc) · 725 Bytes

File metadata and controls

40 lines (30 loc) · 725 Bytes

Repeat<Str, N>

Implementation and Use

type Repeat<
	Str extends string,
	Times extends string,
	Acc extends string = Str
> = Times extends `.${infer Q}`
	? (Q extends '' ? Acc : Repeat<Str, Q, `${Str}${Acc}`>)
	: Acc;
type FourFoos = Repeat<'Foo', '....'>;
// 'FooFooFooFoo'

With Numeral System

Numeral System is Described Here

type Repeat<
	Str extends string,
	Times extends number,
	Acc extends string = Str
> = $$NumToDots<Times> extends `.${infer Q}`
	? (Q extends '' ? Acc : Repeat<Str, Q, `${Str}${Acc}`>)
	: Acc;
type FourFoos = Repeat<'Foo', 4>;
// 'FooFooFooFoo'