From 2344a80e6f73c7e1ebadf388a5f36fb657ec306f Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sun, 11 Sep 2016 10:19:52 -0700 Subject: [PATCH] Handle const binding elements with initializers correctly --- src/compiler/checker.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 4440eeaa3aa..fbbb38ac6a0 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3117,7 +3117,8 @@ namespace ts { // pattern. Otherwise, it is the type any. function getTypeFromBindingElement(element: BindingElement, includePatternInType?: boolean, reportErrors?: boolean): Type { if (element.initializer) { - return getBaseTypeOfLiteralType(checkExpressionCached(element.initializer)); + const exprType = checkExpressionCached(element.initializer); + return getCombinedNodeFlags(element) & NodeFlags.Const ? exprType : getBaseTypeOfLiteralType(exprType); } if (isBindingPattern(element.name)) { return getTypeFromBindingPattern(element.name, includePatternInType, reportErrors);