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]; +};