Don't delete comments when deleting unused declarations (#37467)

* don't delete comment on variable declaration

* add more declaration kinds

* don't copy comment in convertes6 class

* don't copy comments in convertToES6Class

* add tests

* use isAnyImportSyntax

* handle mixed comment types

* update tests
This commit is contained in:
Jesse Trinity
2020-03-31 10:18:06 -07:00
committed by GitHub
parent 2b0f351005
commit ef377d5a66
10 changed files with 135 additions and 6 deletions

View File

@@ -48,7 +48,10 @@ namespace ts.codefix {
return undefined;
}
copyLeadingComments(ctorDeclaration, newClassDeclaration, sourceFile);
// Deleting a declaration only deletes JSDoc style comments, so only copy those to the new node.
if (hasJSDocNodes(ctorDeclaration)) {
copyLeadingComments(ctorDeclaration, newClassDeclaration, sourceFile);
}
// Because the preceding node could be touched, we need to insert nodes before delete nodes.
changes.insertNodeAfter(sourceFile, precedingNode!, newClassDeclaration);