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
+})