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:
@ -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(); }
|
||||
|
||||
|
@ -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)[] = [];
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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) => {
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
|
@ -76,14 +76,19 @@ export class UpgradeComponent implements OnInit, OnChanges, DoCheck, OnDestroy {
|
||||
private directive: angular.IDirective;
|
||||
private bindings: Bindings;
|
||||
|
||||
private controllerInstance: IControllerInstance;
|
||||
private bindingDestination: IBindingDestination;
|
||||
// TODO(issue/24571): remove '!'.
|
||||
private controllerInstance !: IControllerInstance;
|
||||
// TODO(issue/24571): remove '!'.
|
||||
private bindingDestination !: IBindingDestination;
|
||||
|
||||
// We will be instantiating the controller in the `ngOnInit` hook, when the first `ngOnChanges`
|
||||
// will have been already triggered. We store the `SimpleChanges` and "play them back" later.
|
||||
private pendingChanges: SimpleChanges|null;
|
||||
// We will be instantiating the controller in the `ngOnInit` hook, when the
|
||||
// first `ngOnChanges` will have been already triggered. We store the
|
||||
// `SimpleChanges` and "play them back" later.
|
||||
// TODO(issue/24571): remove '!'.
|
||||
private pendingChanges !: SimpleChanges | null;
|
||||
|
||||
private unregisterDoCheckWatcher: Function;
|
||||
// TODO(issue/24571): remove '!'.
|
||||
private unregisterDoCheckWatcher !: Function;
|
||||
|
||||
/**
|
||||
* Create a new `UpgradeComponent` instance. You should not normally need to do this.
|
||||
|
Reference in New Issue
Block a user