From 8d9e66baddd18f62dc08e3b825587514bc03a150 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Thu, 22 Jun 2017 10:49:47 -0700 Subject: [PATCH] Ignore jsdoc when inferring rest args in JavaScript --- src/compiler/checker.ts | 2 +- .../baselines/reference/argumentsObjectCreatesRestForJs.types | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 05c20ffb11a..d46d9c50ae3 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -6391,7 +6391,7 @@ namespace ts { undefined; // JS functions get a free rest parameter if they reference `arguments` let hasRestLikeParameter = hasRestParameter(declaration); - if (!hasRestLikeParameter && isInJavaScriptFile(declaration) && !hasJSDocParameterTags(declaration) && containsArgumentsReference(declaration)) { + if (!hasRestLikeParameter && isInJavaScriptFile(declaration) && containsArgumentsReference(declaration)) { hasRestLikeParameter = true; const syntheticArgsSymbol = createSymbol(SymbolFlags.Variable, "args"); syntheticArgsSymbol.type = anyArrayType; diff --git a/tests/baselines/reference/argumentsObjectCreatesRestForJs.types b/tests/baselines/reference/argumentsObjectCreatesRestForJs.types index 10596fb10c7..28cdfcda413 100644 --- a/tests/baselines/reference/argumentsObjectCreatesRestForJs.types +++ b/tests/baselines/reference/argumentsObjectCreatesRestForJs.types @@ -35,13 +35,13 @@ someRest(1, 2, 3); * @param {number} x - a thing */ function jsdocced(x) { arguments; } ->jsdocced : (x: number) => void +>jsdocced : (x: number, ...args: any[]) => void >x : number >arguments : IArguments jsdocced(1); >jsdocced(1) : void ->jsdocced : (x: number) => void +>jsdocced : (x: number, ...args: any[]) => void >1 : 1 function dontDoubleRest(x, ...y) { arguments; }