From 23552e079c5faa38c08970941a38acc78d3331b7 Mon Sep 17 00:00:00 2001 From: Noah Chen Date: Thu, 5 Jan 2017 13:00:55 -0800 Subject: [PATCH] Fix `prefer-const` for TypeScript <2.1 (#1989) --- src/rules/preferConstRule.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/rules/preferConstRule.ts b/src/rules/preferConstRule.ts index 709e102014d..add583b4c46 100644 --- a/src/rules/preferConstRule.ts +++ b/src/rules/preferConstRule.ts @@ -55,7 +55,15 @@ class PreferConstWalker extends Lint.BlockScopeAwareRuleWalker<{}, ScopeInfo> { } private static collectInVariableDeclarationList(node: ts.VariableDeclarationList, scopeInfo: ScopeInfo) { - if (isCombinedNodeFlagSet(node, ts.NodeFlags.Let) && !isCombinedModifierFlagSet(node, ts.ModifierFlags.Export)) { + let allowConst: boolean; + if ((ts as any).getCombinedModifierFlags === undefined) { + // for back-compat, TypeScript < 2.1 + allowConst = isCombinedNodeFlagSet(node, ts.NodeFlags.Let) + && !Lint.hasModifier(node.parent!.modifiers, ts.SyntaxKind.ExportKeyword); + } else { + allowConst = isCombinedNodeFlagSet(node, ts.NodeFlags.Let) && !isCombinedModifierFlagSet(node, ts.ModifierFlags.Export); + } + if (allowConst) { for (const decl of node.declarations) { PreferConstWalker.addDeclarationName(decl.name, node, scopeInfo); }