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

@ -26,15 +26,18 @@ const JSONP_ERR_WRONG_METHOD = 'JSONP requests must use GET request method.';
* @deprecated see https://angular.io/guide/http
*/
export class JSONPConnection implements Connection {
private _id: string;
private _script: Element;
// TODO(issue/24571): remove '!'.
private _id !: string;
// TODO(issue/24571): remove '!'.
private _script !: Element;
private _responseData: any;
private _finished: boolean = false;
/**
* The {@link ReadyState} of this request.
*/
readyState: ReadyState;
// TODO(issue/24571): remove '!'.
readyState !: ReadyState;
/**
* The outgoing HTTP request.

View File

@ -37,7 +37,8 @@ export class XHRConnection implements Connection {
* `XMLHttpRequest`.
*/
response: Observable<Response>;
readyState: ReadyState;
// TODO(issue/24571): remove '!'.
readyState !: ReadyState;
constructor(req: Request, browserXHR: BrowserXhr, baseResponseOptions?: ResponseOptions) {
this.request = req;
this.response = new Observable<Response>((responseObserver: Observer<Response>) => {

View File

@ -27,8 +27,10 @@ export abstract class ConnectionBackend { abstract createConnection(request: any
* @deprecated see https://angular.io/guide/http
*/
export abstract class Connection {
readyState: ReadyState;
request: Request;
// TODO(issue/24571): remove '!'.
readyState !: ReadyState;
// TODO(issue/24571): remove '!'.
request !: Request;
response: any; // TODO: generic of <Response>;
}

View File

@ -70,13 +70,15 @@ export class Response extends Body {
* Denotes how many of the response body's bytes have been loaded, for example if the response is
* the result of a progress event.
*/
bytesLoaded: number;
// TODO(issue/24571): remove '!'.
bytesLoaded !: number;
/**
* Non-standard property
*
* Denotes how many bytes are expected in the final response body.
*/
totalBytes: number;
// TODO(issue/24571): remove '!'.
totalBytes !: number;
/**
* Headers object based on the `Headers` class in the [Fetch
* Spec](https://fetch.spec.whatwg.org/#headers-class).

View File

@ -20,7 +20,8 @@ import {expect} from '@angular/platform-browser/testing/src/matchers';
let existingScripts: MockBrowserJsonp[] = [];
class MockBrowserJsonp extends BrowserJsonp {
src: string;
// TODO(issue/24571): remove '!'.
src !: string;
callbacks = new Map<string, (data: any) => any>();
addEventListener(type: string, cb: (data: any) => any) { this.callbacks.set(type, cb); }

View File

@ -32,14 +32,20 @@ class MockBrowserXHR extends BrowserXhr {
open: any;
response: any;
responseType: string;
responseText: string;
// TODO(issue/24571): remove '!'.
responseText !: string;
setRequestHeader: any;
callbacks = new Map<string, Function>();
status: number;
responseHeaders: string;
responseURL: string;
statusText: string;
withCredentials: boolean;
// TODO(issue/24571): remove '!'.
status !: number;
// TODO(issue/24571): remove '!'.
responseHeaders !: string;
// TODO(issue/24571): remove '!'.
responseURL !: string;
// TODO(issue/24571): remove '!'.
statusText !: string;
// TODO(issue/24571): remove '!'.
withCredentials !: boolean;
constructor() {
super();