diff --git a/src/services/codefixes/fixStrictClassInitialization.ts b/src/services/codefixes/fixStrictClassInitialization.ts index f9fcad0f2d7..67f5e41f7d4 100644 --- a/src/services/codefixes/fixStrictClassInitialization.ts +++ b/src/services/codefixes/fixStrictClassInitialization.ts @@ -67,6 +67,7 @@ namespace ts.codefix { } function addDefiniteAssignmentAssertion(changeTracker: textChanges.ChangeTracker, propertyDeclarationSourceFile: SourceFile, propertyDeclaration: PropertyDeclaration): void { + suppressLeadingAndTrailingTrivia(propertyDeclaration); const property = factory.updatePropertyDeclaration( propertyDeclaration, propertyDeclaration.decorators, @@ -108,6 +109,7 @@ namespace ts.codefix { } function addInitializer(changeTracker: textChanges.ChangeTracker, propertyDeclarationSourceFile: SourceFile, propertyDeclaration: PropertyDeclaration, initializer: Expression): void { + suppressLeadingAndTrailingTrivia(propertyDeclaration); const property = factory.updatePropertyDeclaration( propertyDeclaration, propertyDeclaration.decorators, diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization17.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization17.ts new file mode 100644 index 00000000000..4e89c278553 --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization17.ts @@ -0,0 +1,17 @@ +/// + +// @strict: true + +//// class T { +//// // comment +//// a: string; +//// } + +verify.codeFix({ + description: `Add definite assignment assertion to property 'a: string;'`, + newFileContent: `class T { + // comment + a!: string; +}`, + index: 1 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization18.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization18.ts new file mode 100644 index 00000000000..76dcbdb4e27 --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization18.ts @@ -0,0 +1,15 @@ +/// + +// @strict: true + +//// class T { +//// a: string; // comment +//// } + +verify.codeFix({ + description: `Add definite assignment assertion to property 'a: string;'`, + newFileContent: `class T { + a!: string; // comment +}`, + index: 1 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization19.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization19.ts new file mode 100644 index 00000000000..727dd09aad1 --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization19.ts @@ -0,0 +1,17 @@ +/// + +// @strict: true + +//// class T { +//// // comment +//// a: 2; +//// } + +verify.codeFix({ + description: `Add initializer to property 'a'`, + newFileContent: `class T { + // comment + a: 2 = 2; +}`, + index: 2 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization20.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization20.ts new file mode 100644 index 00000000000..35ccec948bc --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization20.ts @@ -0,0 +1,15 @@ +/// + +// @strict: true + +//// class T { +//// a: 2; // comment +//// } + +verify.codeFix({ + description: `Add initializer to property 'a'`, + newFileContent: `class T { + a: 2 = 2; // comment +}`, + index: 2 +})