diff --git a/src/services/refactors/convertStringOrTemplateLiteral.ts b/src/services/refactors/convertStringOrTemplateLiteral.ts index a35f921c867..e8b8768362c 100644 --- a/src/services/refactors/convertStringOrTemplateLiteral.ts +++ b/src/services/refactors/convertStringOrTemplateLiteral.ts @@ -164,15 +164,14 @@ namespace ts.refactor.convertStringOrTemplateLiteral { i++; } - if (isParenthesizedExpression(current)) current = current.expression; text = cleanString(text); - templatePart = i === nodes.length - 1 ? createTemplateTail(text) : createTemplateMiddle(text); } else { templatePart = i === nodes.length - 1 ? createTemplateTail("") : createTemplateMiddle(""); } + if (isParenthesizedExpression(current)) current = current.expression; spans.push(createTemplateSpan(current as Expression, templatePart)); } diff --git a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBinaryExprInEnding.ts b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBinaryExprInEnding.ts new file mode 100644 index 00000000000..a7ab291657b --- /dev/null +++ b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_ToTemplateBinaryExprInEnding.ts @@ -0,0 +1,12 @@ +/// + +//// const foo = "/*x*/f/*y*/oobar is " + (42 + 6) + +goTo.select("x", "y"); +edit.applyRefactor({ + refactorName: "Convert string concatenation or template literal", + actionName: "Convert to template literal", + actionDescription: "Convert to template literal", + newContent: +"const foo = `foobar is \${42 + 6}`", +});