Skip to content

Commit

Permalink
Allow trailing comma after rest parameter in TSDeclareFunction (#13101)
Browse files Browse the repository at this point in the history
* fix(ts): allow trailing comma after rest parameter in `TSDeclareFunction`

* Apply code review changes

Co-Authored-By: Nicol貌 Ribaudo <7000710+nicolo-ribaudo@users.noreply.github.com>
  • Loading branch information
fedeci and nicolo-ribaudo committed Apr 6, 2021
1 parent 6b57145 commit 42e630e
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 0 deletions.
12 changes: 12 additions & 0 deletions packages/babel-parser/src/plugins/typescript/index.js
Expand Up @@ -2789,6 +2789,18 @@ export default (superClass: Class<Parser>): Class<Parser> =>
return super.parseMaybeDecoratorArguments(expr);
}

checkCommaAfterRest(close) {
if (
this.state.isDeclareContext &&
this.match(tt.comma) &&
this.lookaheadCharCode() === close
) {
this.next();
} else {
super.checkCommaAfterRest(close);
}
}

// === === === === === === === === === === === === === === === ===
// Note: All below methods are duplicates of something in flow.js.
// Not sure what the best way to combine these is.
Expand Down
@@ -0,0 +1 @@
declare function foo(...args: any[], )
@@ -0,0 +1,48 @@
{
"type": "File",
"start":0,"end":38,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":38}},
"program": {
"type": "Program",
"start":0,"end":38,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":38}},
"sourceType": "module",
"interpreter": null,
"body": [
{
"type": "TSDeclareFunction",
"start":0,"end":38,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":38}},
"declare": true,
"id": {
"type": "Identifier",
"start":17,"end":20,"loc":{"start":{"line":1,"column":17},"end":{"line":1,"column":20},"identifierName":"foo"},
"name": "foo"
},
"generator": false,
"async": false,
"params": [
{
"type": "RestElement",
"start":21,"end":35,"loc":{"start":{"line":1,"column":21},"end":{"line":1,"column":35}},
"argument": {
"type": "Identifier",
"start":24,"end":28,"loc":{"start":{"line":1,"column":24},"end":{"line":1,"column":28},"identifierName":"args"},
"name": "args"
},
"typeAnnotation": {
"type": "TSTypeAnnotation",
"start":28,"end":35,"loc":{"start":{"line":1,"column":28},"end":{"line":1,"column":35}},
"typeAnnotation": {
"type": "TSArrayType",
"start":30,"end":35,"loc":{"start":{"line":1,"column":30},"end":{"line":1,"column":35}},
"elementType": {
"type": "TSAnyKeyword",
"start":30,"end":33,"loc":{"start":{"line":1,"column":30},"end":{"line":1,"column":33}}
}
}
}
}
]
}
],
"directives": []
}
}

0 comments on commit 42e630e

Please sign in to comment.