build(bazel): Turning on strictPropertyInitialization for Angular. (#24572)

All errors for existing fields have been detected and suppressed with a
`!` assertion.

Issue/24571 is tracking proper clean up of those instances.

One-line change required in ivy/compilation.ts, because it appears that
the new syntax causes tsickle emitted node to no longer track their
original sourceFiles.

PR Close #24572
This commit is contained in:
Rado Kirov
2018-06-18 16:38:33 -07:00
committed by Miško Hevery
parent 39c7769c9e
commit c95437f15d
189 changed files with 1273 additions and 632 deletions

View File

@ -13,12 +13,18 @@
* and attribute have the same identifier.
*/
export class PropertyBinding {
bracketAttr: string;
bracketParenAttr: string;
parenAttr: string;
onAttr: string;
bindAttr: string;
bindonAttr: string;
// TODO(issue/24571): remove '!'.
bracketAttr !: string;
// TODO(issue/24571): remove '!'.
bracketParenAttr !: string;
// TODO(issue/24571): remove '!'.
parenAttr !: string;
// TODO(issue/24571): remove '!'.
onAttr !: string;
// TODO(issue/24571): remove '!'.
bindAttr !: string;
// TODO(issue/24571): remove '!'.
bindonAttr !: string;
constructor(public prop: string, public attr: string) { this.parseBinding(); }

View File

@ -158,7 +158,8 @@ export function downgradeComponent(info: {
* to preserve the synchronous nature of Angular 1's $compile.
*/
class ParentInjectorPromise {
private injector: Injector;
// TODO(issue/24571): remove '!'.
private injector !: Injector;
private injectorKey: string = controllerKey(INJECTOR_KEY);
private callbacks: ((injector: Injector) => any)[] = [];

View File

@ -22,10 +22,13 @@ export class DowngradeComponentAdapter {
private inputChangeCount: number = 0;
private inputChanges: SimpleChanges = {};
private componentScope: angular.IScope;
private componentRef: ComponentRef<any>;
// TODO(issue/24571): remove '!'.
private componentRef !: ComponentRef<any>;
private component: any;
private changeDetector: ChangeDetectorRef;
private viewChangeDetector: ChangeDetectorRef;
// TODO(issue/24571): remove '!'.
private changeDetector !: ChangeDetectorRef;
// TODO(issue/24571): remove '!'.
private viewChangeDetector !: ChangeDetectorRef;
constructor(
private element: angular.IAugmentedJQuery, private attrs: angular.IAttributes,

View File

@ -43,8 +43,10 @@ export function isFunction(value: any): value is Function {
export class Deferred<R> {
promise: Promise<R>;
resolve: (value?: R|PromiseLike<R>) => void;
reject: (error?: any) => void;
// TODO(issue/24571): remove '!'.
resolve !: (value?: R | PromiseLike<R>) => void;
// TODO(issue/24571): remove '!'.
reject !: (error?: any) => void;
constructor() {
this.promise = new Promise((res, rej) => {