diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index e6f8f62fe31..47300797cb9 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -1366,7 +1366,7 @@ namespace ts { return sourceFiles.indexOf(declarationFile) <= sourceFiles.indexOf(useFile); } - if (declaration.pos <= usage.pos) { + if (declaration.pos <= usage.pos && !(isPropertyDeclaration(declaration) && isThisProperty(usage.parent) && !declaration.initializer && !declaration.exclamationToken)) { // declaration is before usage if (declaration.kind === SyntaxKind.BindingElement) { // still might be illegal if declaration and usage are both binding elements (eg var [a = b, b = b] = [1, 2])