TypeScript Version: 3.0.1/3.1.0-dev.20180808
Search Terms:
Code
typeHead<T>=Textends[infer P, ...any[]] ? P : never;typeTail<Lextendsany[]>=((...x: L)=>void)extends((h: any, ...rest: infer T)=>void) ? T : nevertypeLast<Textendsany[]>={0: never,1: Head<T>,2: Last<Tail<T>>,}[Textends[] ? 0 : Textends[any] ? 1 : 2];typeReverse<Lextendsany[],Xextendsany[]=[]>={1: X,0: Reverse<Tail<L>,Cons<Head<L>,X>>}[Lextends[] ? 1 : 0]typeFn<Rextendsany[]>=(...args: R)=>voidtypeFn1<H,Textendsany[]>=(h: H, ...args: T)=>voidtypeCons<H,Textendsany[]>=Fn1<H,T>extendsFn<infer R> ? R : []typeZip<Aextendsany[],Bextendsany[],Rextendsany[]=[]>={0: Reverse<R>,1: Zip<Tail<A>,Tail<B>,Cons<[Head<A>,Head<B>],R>>}[Aextends[] ? 0 : Bextends[] ? 0 : 1];typeShiftZip<Textendsany[]>=Zip<T,Tail<T>>;typeTuple2Fn<T>=Textends[infer A, infer B] ? (x: A)=>B : never;type_Pipe<Textendsany[],Rextendsany[]=[]>={0: Reverse<R>,1: _Pipe<Tail<T>,Cons<Tuple2Fn<Head<T>>,R>>}[Textends[] ? 0 : 1];typePipe<Textendsany[]>=_Pipe<ShiftZip<T>>;declarefunctionpipe<Textendsany[]>(...f: Pipe<T>): (x: Head<T>)=>Last<T>;Expected behavior:
tsc finish
Actual behavior:
tsc does not finish
Playground Link:
Related Issues:
#24897
TypeScript Version: 3.0.1/3.1.0-dev.20180808
Search Terms:
Code
Expected behavior:
tsc finish
Actual behavior:
tsc does not finish
Playground Link:
Related Issues:
#24897