Skip to content

Commit 2a6aacd

Browse files
authored
Merge pull request microsoft#16696 from Microsoft/fix15663
Ignore jsdoc when inferring rest args in JavaScript
2 parents 9048c0a + 8d9e66b commit 2a6aacd

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/compiler/checker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6398,7 +6398,7 @@ namespace ts {
63986398
undefined;
63996399
// JS functions get a free rest parameter if they reference `arguments`
64006400
let hasRestLikeParameter = hasRestParameter(declaration);
6401-
if (!hasRestLikeParameter && isInJavaScriptFile(declaration) && !hasJSDocParameterTags(declaration) && containsArgumentsReference(declaration)) {
6401+
if (!hasRestLikeParameter && isInJavaScriptFile(declaration) && containsArgumentsReference(declaration)) {
64026402
hasRestLikeParameter = true;
64036403
const syntheticArgsSymbol = createSymbol(SymbolFlags.Variable, "args");
64046404
syntheticArgsSymbol.type = anyArrayType;

tests/baselines/reference/argumentsObjectCreatesRestForJs.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ someRest(1, 2, 3);
3535
* @param {number} x - a thing
3636
*/
3737
function jsdocced(x) { arguments; }
38-
>jsdocced : (x: number) => void
38+
>jsdocced : (x: number, ...args: any[]) => void
3939
>x : number
4040
>arguments : IArguments
4141

4242
jsdocced(1);
4343
>jsdocced(1) : void
44-
>jsdocced : (x: number) => void
44+
>jsdocced : (x: number, ...args: any[]) => void
4545
>1 : 1
4646

4747
function dontDoubleRest(x, ...y) { arguments; }

0 commit comments

Comments
 (0)