From e37579285527840e507b6aa602dfe0999c5db861 Mon Sep 17 00:00:00 2001 From: Vitaly Date: Sat, 3 Feb 2024 19:39:20 +0300 Subject: [PATCH] wip --- .../custom/splitDeclarationAndInitialization.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/typescript/src/codeActions/custom/splitDeclarationAndInitialization.ts b/typescript/src/codeActions/custom/splitDeclarationAndInitialization.ts index 153502ce..68e4f4da 100644 --- a/typescript/src/codeActions/custom/splitDeclarationAndInitialization.ts +++ b/typescript/src/codeActions/custom/splitDeclarationAndInitialization.ts @@ -24,14 +24,13 @@ export default { const { factory } = ts const nodeStart = node.pos + node.getLeadingTriviaWidth() const varName = declaration.name.text - changesTracker.insertNodeAt( - sourceFile, - nodeStart, - factory.createVariableDeclarationList( - [factory.createVariableDeclaration(factory.createIdentifier(varName), undefined, typeNode)], - ts.NodeFlags.Let, - ), - ) + const isJs = !!(node.flags & ts.NodeFlags.JavaScriptFile) + const variableDeclaration = factory.createVariableDeclaration(factory.createIdentifier(varName), undefined, isJs ? undefined : typeNode) + changesTracker.insertNodeAt(sourceFile, nodeStart, factory.createVariableDeclarationList([variableDeclaration], ts.NodeFlags.Let)) + if (isJs && typeNode) { + const typeTag = factory.createJSDocTypeTag(/*tagName*/ undefined, factory.createJSDocTypeExpression(typeNode), /*comment*/ undefined) + changesTracker.addJSDocTags(sourceFile, node, [typeTag as any]) + } changesTracker.replaceNode( sourceFile, node,