From e3b4c9097006bca2d491c751bd5cadf026cf95f3 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Sat, 22 Apr 2017 17:08:52 -0700 Subject: [PATCH] Properly account for 'this' parameter in type predicate checks --- src/compiler/checker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index cb28cb0bd5c..8549f63df6f 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -11565,7 +11565,7 @@ namespace ts { } if (isIdentifierTypePredicate(predicate)) { - const predicateArgument = callExpression.arguments[predicate.parameterIndex]; + const predicateArgument = callExpression.arguments[predicate.parameterIndex - (signature.thisParameter ? 1 : 0)]; if (predicateArgument) { if (isMatchingReference(reference, predicateArgument)) { return getNarrowedType(type, predicate.type, assumeTrue, isTypeSubtypeOf);