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

@ -112,10 +112,13 @@ export class UpgradeAdapter {
*/
private ng1ComponentsToBeUpgraded: {[name: string]: UpgradeNg1ComponentAdapterBuilder} = {};
private upgradedProviders: StaticProvider[] = [];
private ngZone: NgZone;
private ng1Module: angular.IModule;
// TODO(issue/24571): remove '!'.
private ngZone !: NgZone;
// TODO(issue/24571): remove '!'.
private ng1Module !: angular.IModule;
private moduleRef: NgModuleRef<any>|null = null;
private ng2BootstrapDeferred: Deferred<angular.IInjectorService>;
// TODO(issue/24571): remove '!'.
private ng2BootstrapDeferred !: Deferred<angular.IInjectorService>;
constructor(private ng2AppModule: Type<any>, private compilerOptions?: CompilerOptions) {
if (!ng2AppModule) {
@ -608,7 +611,8 @@ export class UpgradeAdapter {
* to preserve the synchronous nature of AngularJS's $compile.
*/
class ParentInjectorPromise {
private injector: Injector;
// TODO(issue/24571): remove '!'.
private injector !: Injector;
private callbacks: ((injector: Injector) => any)[] = [];
constructor(private element: angular.IAugmentedJQuery) {

View File

@ -22,7 +22,8 @@ const NOT_SUPPORTED: any = 'NOT_SUPPORTED';
export class UpgradeNg1ComponentAdapterBuilder {
type: Type<any>;
// TODO(issue/24571): remove '!'.
type !: Type<any>;
inputs: string[] = [];
inputsRename: string[] = [];
outputs: string[] = [];
@ -31,7 +32,8 @@ export class UpgradeNg1ComponentAdapterBuilder {
checkProperties: string[] = [];
propertyMap: {[name: string]: string} = {};
directive: angular.IDirective|null = null;
template: string;
// TODO(issue/24571): remove '!'.
template !: string;
constructor(public name: string) {
const selector =
@ -45,7 +47,8 @@ export class UpgradeNg1ComponentAdapterBuilder {
@Directive(directive)
class MyClass {
directive: angular.IDirective;
// TODO(issue/24571): remove '!'.
directive !: angular.IDirective;
constructor(
@Inject($SCOPE) scope: angular.IScope, injector: Injector, elementRef: ElementRef) {
const helper = new UpgradeHelper(injector, name, elementRef, this.directive);