diff --git a/src/services/codefixes/fixUnusedIdentifier.ts b/src/services/codefixes/fixUnusedIdentifier.ts index c97902e7713..ebe65197c7f 100644 --- a/src/services/codefixes/fixUnusedIdentifier.ts +++ b/src/services/codefixes/fixUnusedIdentifier.ts @@ -228,15 +228,12 @@ namespace ts.codefix { case SyntaxKind.BindingElement: { const pattern = (parent as BindingElement).parent; - switch (pattern.kind) { - case SyntaxKind.ArrayBindingPattern: - changes.deleteNode(sourceFile, parent); // Don't delete ',' - break; - case SyntaxKind.ObjectBindingPattern: - changes.deleteNodeInList(sourceFile, parent); - break; - default: - return Debug.assertNever(pattern); + const preserveComma = pattern.kind === SyntaxKind.ArrayBindingPattern && parent !== last(pattern.elements); + if (preserveComma) { + changes.deleteNode(sourceFile, parent); + } + else { + changes.deleteNodeInList(sourceFile, parent); } break; } diff --git a/tests/cases/fourslash/codeFixUnusedIdentifier_destructure_partlyUnused.ts b/tests/cases/fourslash/codeFixUnusedIdentifier_destructure_partlyUnused.ts index 6ed5973d400..e0783706085 100644 --- a/tests/cases/fourslash/codeFixUnusedIdentifier_destructure_partlyUnused.ts +++ b/tests/cases/fourslash/codeFixUnusedIdentifier_destructure_partlyUnused.ts @@ -57,7 +57,7 @@ verify.codeFixAll({ x; z; } { - const [x,] = o; + const [x] = o; x; } { @@ -65,7 +65,7 @@ verify.codeFixAll({ y; } { - const [, y,] = o; + const [, y] = o; y; } {