angular-cn/goldens/public-api/common
Andrea Canciani 9c8bc4a239 fix(common): narrow `NgIf` context variables in template type checker (#36627)
When the `NgIf` directive is used in a template, its context variables
can be used to capture the bound value. This is sometimes used in
complex expressions, where the resulting value is captured in a
context variable. There's two syntax forms available:

1. Binding to `NgIfContext.ngIf` using the `as` syntax:
```html
<span *ngIf="enabled && user as u">{{u.name}}</span>
```

2. Binding to `NgIfContext.$implicit` using the `let` syntax:
```html
<span *ngIf="enabled && user; let u">{{u.name}}</span>
```

Because of the semantics of `ngIf`, it is known that the captured
context variable is truthy, however the template type checker
would not consider them as such and still report errors when
`strict` is enabled.

This commit updates `NgIf`'s context guard to make the types of the
context variables truthy, avoiding the issue.

Based on https://github.com/angular/angular/pull/35125

PR Close #36627
2020-07-29 10:30:44 -07:00
..
http ci: move public-api goldens to goldens directory (#35768) 2020-03-10 20:58:39 -04:00
testing ci: move public-api goldens to goldens directory (#35768) 2020-03-10 20:58:39 -04:00
upgrade ci: move public-api goldens to goldens directory (#35768) 2020-03-10 20:58:39 -04:00
common.d.ts fix(common): narrow `NgIf` context variables in template type checker (#36627) 2020-07-29 10:30:44 -07:00