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

@ -44,10 +44,12 @@ export class ComponentNgElementStrategyFactory implements NgElementStrategyFacto
*/
export class ComponentNgElementStrategy implements NgElementStrategy {
/** Merged stream of the component's output events. */
events: Observable<NgElementStrategyEvent>;
// TODO(issue/24571): remove '!'.
events !: Observable<NgElementStrategyEvent>;
/** Reference to the component that was created on connect. */
private componentRef: ComponentRef<any>|null;
// TODO(issue/24571): remove '!'.
private componentRef !: ComponentRef<any>| null;
/** Changes that have been made to the component ref since the last time onChanges was called. */
private inputChanges: SimpleChanges|null = null;

View File

@ -43,7 +43,8 @@ export abstract class NgElement extends HTMLElement {
/**
* The strategy that controls how a component is transformed in a custom element.
*/
protected ngElementStrategy: NgElementStrategy;
// TODO(issue/24571): remove '!'.
protected ngElementStrategy !: NgElementStrategy;
/**
* A subscription to change, connect, and disconnect events in the custom element.
*/

View File

@ -103,7 +103,8 @@ if (typeof customElements !== 'undefined') {
})
class TestComponent {
@Input() fooFoo: string = 'foo';
@Input('barbar') barBar: string;
// TODO(issue/24571): remove '!'.
@Input('barbar') barBar !: string;
@Output() bazBaz = new EventEmitter<boolean>();
@Output('quxqux') quxQux = new EventEmitter<Object>();