diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 819cd98f6fd..79913281d82 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -23193,7 +23193,7 @@ namespace ts { if (node === right) { return getContextualType(binaryExpression, contextFlags); } - else if (!(contextFlags! & ContextFlags.SkipBindingPatternsAndUnusedExpressions)) { + else if (isAwaitExpression(skipParentheses(node)) && !(contextFlags! & ContextFlags.SkipBindingPatternsAndUnusedExpressions)) { return voidType; } return undefined; @@ -23610,13 +23610,13 @@ namespace ts { return getContextualJsxElementAttributesType(parent, contextFlags); case SyntaxKind.ExpressionStatement: case SyntaxKind.VoidExpression: - if (!(contextFlags! & ContextFlags.SkipBindingPatternsAndUnusedExpressions)) { + if (isAwaitExpression(skipParentheses(node)) && !(contextFlags! & ContextFlags.SkipBindingPatternsAndUnusedExpressions)) { return voidType; } break; case SyntaxKind.ForStatement: { const forStatement = parent as ForStatement; - if (!(contextFlags! & ContextFlags.SkipBindingPatternsAndUnusedExpressions) && (node === forStatement.initializer || node === forStatement.incrementor)) { + if (isAwaitExpression(skipParentheses(node)) && !(contextFlags! & ContextFlags.SkipBindingPatternsAndUnusedExpressions) && (node === forStatement.initializer || node === forStatement.incrementor)) { return voidType; } break;