From 2b4b0d7a2e625912aae9c5375b584e90f8b35bbd Mon Sep 17 00:00:00 2001 From: Kevin Barabash Date: Sun, 11 Dec 2022 13:19:39 -0500 Subject: [PATCH] fix(es/codegen): fix issue with typescript's mapped types output --- crates/swc_ecma_codegen/src/typescript.rs | 2 +- crates/swc_ecma_codegen/tests/fixture/issues/6616/input.ts | 3 +++ crates/swc_ecma_codegen/tests/fixture/issues/6616/output.ts | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 crates/swc_ecma_codegen/tests/fixture/issues/6616/input.ts create mode 100644 crates/swc_ecma_codegen/tests/fixture/issues/6616/output.ts diff --git a/crates/swc_ecma_codegen/src/typescript.rs b/crates/swc_ecma_codegen/src/typescript.rs index 9ed7bf4f3b5e..d9f510c6118a 100644 --- a/crates/swc_ecma_codegen/src/typescript.rs +++ b/crates/swc_ecma_codegen/src/typescript.rs @@ -505,7 +505,7 @@ where } TruePlusMinus::Plus => { punct!("+"); - punct!("/"); + punct!("?"); } TruePlusMinus::Minus => { punct!("-"); diff --git a/crates/swc_ecma_codegen/tests/fixture/issues/6616/input.ts b/crates/swc_ecma_codegen/tests/fixture/issues/6616/input.ts new file mode 100644 index 000000000000..b79078e4d293 --- /dev/null +++ b/crates/swc_ecma_codegen/tests/fixture/issues/6616/input.ts @@ -0,0 +1,3 @@ +type Custom = { + -readonly [P in keyof A]+?: A[P]; +}; diff --git a/crates/swc_ecma_codegen/tests/fixture/issues/6616/output.ts b/crates/swc_ecma_codegen/tests/fixture/issues/6616/output.ts new file mode 100644 index 000000000000..b79078e4d293 --- /dev/null +++ b/crates/swc_ecma_codegen/tests/fixture/issues/6616/output.ts @@ -0,0 +1,3 @@ +type Custom = { + -readonly [P in keyof A]+?: A[P]; +};