From 6fa819beb91ba99dadd6262d6c13f7ddfd9470c5 Mon Sep 17 00:00:00 2001 From: Ben Lesh Date: Mon, 12 Apr 2021 19:39:30 -0500 Subject: [PATCH] fix(pipe): Ensure that `unknown` is infered for 9+ arguments. (#6212) --- api_guard/dist/types/index.d.ts | 2 +- spec-dtslint/util/pipe-spec.ts | 4 ++-- src/internal/util/pipe.ts | 4 +--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/api_guard/dist/types/index.d.ts b/api_guard/dist/types/index.d.ts index a079b65c08..71d8c83c8d 100644 --- a/api_guard/dist/types/index.d.ts +++ b/api_guard/dist/types/index.d.ts @@ -336,7 +336,7 @@ export declare function pipe(fn1: UnaryFunction, fn2: export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction; -export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction; +export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction; export declare const queue: QueueScheduler; diff --git a/spec-dtslint/util/pipe-spec.ts b/spec-dtslint/util/pipe-spec.ts index f4d30d1279..87e8220b06 100644 --- a/spec-dtslint/util/pipe-spec.ts +++ b/spec-dtslint/util/pipe-spec.ts @@ -61,8 +61,8 @@ it('should infer for 9 arguments', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7'), a('7', '8'), a('8', '9')); // $ExpectType UnaryFunction<"0", "9"> }); -it('should infer {} for more than 9 arguments', () => { - const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7'), a('7', '8'), a('8', '9'), a('9', '10')); // $ExpectType UnaryFunction<"0", {}> +it('should infer unknown for more than 9 arguments', () => { + const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7'), a('7', '8'), a('8', '9'), a('9', '10')); // $ExpectType UnaryFunction<"0", unknown> }); it('should require a type assertion for more than 9 arguments', () => { diff --git a/src/internal/util/pipe.ts b/src/internal/util/pipe.ts index f68ae42622..86bc8b7820 100644 --- a/src/internal/util/pipe.ts +++ b/src/internal/util/pipe.ts @@ -1,7 +1,6 @@ import { identity } from './identity'; import { UnaryFunction } from '../types'; -/* tslint:disable:max-line-length */ export function pipe(): typeof identity; export function pipe(fn1: UnaryFunction): UnaryFunction; export function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction; @@ -68,8 +67,7 @@ export function pipe( fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[] -): UnaryFunction; -/* tslint:enable:max-line-length */ +): UnaryFunction; export function pipe(...fns: Array>): UnaryFunction { return pipeFromArray(fns);