feat(compiler): allow ngIf to use the ngIf expression directly as a guard

Allows a directive to use the expression passed directly to a property
as a guard instead of filtering the type through a type expression.

This more accurately matches the intent of the ngIf usage of its template
enabling better type inference.

Moved NgIf to using this type of guard instead of a function guard.

Closes: #20967
This commit is contained in:
Chuck Jazdzewski
2017-12-12 14:20:12 -08:00
committed by Alex Rickabaugh
parent e48f477477
commit 82bcd83566
6 changed files with 330 additions and 10 deletions

View File

@ -276,7 +276,6 @@ export declare class NgIf {
ngIfElse: TemplateRef<NgIfContext>;
ngIfThen: TemplateRef<NgIfContext>;
constructor(_viewContainer: ViewContainerRef, templateRef: TemplateRef<NgIfContext>);
static ngIfTypeGuard: <T>(v: T | null | undefined | false) => v is T;
}
/** @stable */