diff --git a/scripts/tslint/preferConstRule.ts b/scripts/tslint/preferConstRule.ts index 60d771863be7d..9425d2b60795a 100644 --- a/scripts/tslint/preferConstRule.ts +++ b/scripts/tslint/preferConstRule.ts @@ -93,11 +93,16 @@ class PreferConstWalker extends Lint.RuleWalker { private visitBindingPatternIdentifiers(pattern: ts.BindingPattern) { for (const element of pattern.elements) { - if (element.name.kind === ts.SyntaxKind.Identifier) { - this.markAssignment(element.name as ts.Identifier); + if (element.kind !== ts.SyntaxKind.BindingElement) { + continue; + } + + const name = (element).name; + if (name.kind === ts.SyntaxKind.Identifier) { + this.markAssignment(name as ts.Identifier); } else { - this.visitBindingPatternIdentifiers(element.name as ts.BindingPattern); + this.visitBindingPatternIdentifiers(name as ts.BindingPattern); } } } @@ -191,7 +196,9 @@ class PreferConstWalker extends Lint.RuleWalker { private collectBindingPatternIdentifiers(value: ts.VariableDeclaration, pattern: ts.BindingPattern, table: ts.MapLike) { for (const element of pattern.elements) { - this.collectNameIdentifiers(value, element.name, table); + if (element.kind === ts.SyntaxKind.BindingElement) { + this.collectNameIdentifiers(value, (element).name, table); + } } } }