Skip to content

Commit 1c32b67

Browse files
Print trailing comma after a single TS generic in arrow fns (#14113)
1 parent a6d77d0 commit 1c32b67

9 files changed

Lines changed: 17 additions & 6 deletions

File tree

packages/babel-generator/src/generators/typescript.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ export function TSTypeAnnotation(this: Printer, node: t.TSTypeAnnotation) {
1212
export function TSTypeParameterInstantiation(
1313
this: Printer,
1414
node: t.TSTypeParameterInstantiation,
15+
parent: t.Node,
1516
): void {
1617
this.token("<");
1718
this.printList(node.params, node, {});
19+
if (parent.type === "ArrowFunctionExpression" && node.params.length === 1) {
20+
this.token(",");
21+
}
1822
this.token(">");
1923
}
2024

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
async <T>(a: T): T => a;
1+
async <T,>(a: T): T => a;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// Verify typescript doesn't change anything inside type parameter declaration
2+
const foo = <T,>(a: T): T => a;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"plugins": ["jsx", "typescript"]
3+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// Verify typescript doesn't change anything inside type parameter declaration
2+
const foo = <T,>(a: T): T => a;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
// Same as `generic`. Verify that JSX doesn't change things.
2-
<T>(a: T): T => a;
2+
<T,>(a: T): T => a;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<T>(a: T): T => a;
1+
<T,>(a: T): T => a;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
<T>() => 1;
1+
<T,>() => 1;
22

3-
<T>(x) => 1;
3+
<T,>(x) => 1;

packages/babel-plugin-transform-parameters/test/fixtures/regression/11344-typescript/output.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ function a() {
44
}
55

66
function d() {
7-
let e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : <T>() => {};
7+
let e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : <T,>() => {};
88
let T;
99
}

0 commit comments

Comments
 (0)