More strict null checks (#60565)

This commit is contained in:
Alex Dima
2018-10-12 17:53:21 +02:00
parent 4eb61b9ada
commit 5bd13a8cee
24 changed files with 180 additions and 153 deletions

View File

@@ -99,10 +99,10 @@ export class ContextView extends Disposable {
private static readonly BUBBLE_UP_EVENTS = ['click', 'keydown', 'focus', 'blur'];
private static readonly BUBBLE_DOWN_EVENTS = ['click'];
private container: HTMLElement;
private container: HTMLElement | null;
private view: HTMLElement;
private delegate: IDelegate;
private toDisposeOnClean: IDisposable;
private delegate: IDelegate | null;
private toDisposeOnClean: IDisposable | null;
private toDisposeOnSetContainer: IDisposable;
constructor(container: HTMLElement) {
@@ -117,7 +117,7 @@ export class ContextView extends Disposable {
this._register(toDisposable(() => this.setContainer(null)));
}
public setContainer(container: HTMLElement): void {
public setContainer(container: HTMLElement | null): void {
if (this.container) {
this.toDisposeOnSetContainer = dispose(this.toDisposeOnSetContainer);
this.container.removeChild(this.view);
@@ -130,13 +130,13 @@ export class ContextView extends Disposable {
const toDisposeOnSetContainer: IDisposable[] = [];
ContextView.BUBBLE_UP_EVENTS.forEach(event => {
toDisposeOnSetContainer.push(DOM.addStandardDisposableListener(this.container, event, (e: Event) => {
toDisposeOnSetContainer.push(DOM.addStandardDisposableListener(this.container!, event, (e: Event) => {
this.onDOMEvent(e, <HTMLElement>document.activeElement, false);
}));
});
ContextView.BUBBLE_DOWN_EVENTS.forEach(event => {
toDisposeOnSetContainer.push(DOM.addStandardDisposableListener(this.container, event, (e: Event) => {
toDisposeOnSetContainer.push(DOM.addStandardDisposableListener(this.container!, event, (e: Event) => {
this.onDOMEvent(e, <HTMLElement>document.activeElement, true);
}, true));
});
@@ -172,13 +172,13 @@ export class ContextView extends Disposable {
return;
}
if (this.delegate.canRelayout === false) {
if (this.delegate!.canRelayout === false) {
this.hide();
return;
}
if (this.delegate.layout) {
this.delegate.layout();
if (this.delegate!.layout) {
this.delegate!.layout!();
}
this.doLayout();
@@ -191,7 +191,7 @@ export class ContextView extends Disposable {
}
// Get anchor
let anchor = this.delegate.getAnchor();
let anchor = this.delegate!.getAnchor();
// Compute around
let around: IView;
@@ -220,8 +220,8 @@ export class ContextView extends Disposable {
const viewSizeWidth = DOM.getTotalWidth(this.view);
const viewSizeHeight = DOM.getTotalHeight(this.view);
const anchorPosition = this.delegate.anchorPosition || AnchorPosition.BELOW;
const anchorAlignment = this.delegate.anchorAlignment || AnchorAlignment.LEFT;
const anchorPosition = this.delegate!.anchorPosition || AnchorPosition.BELOW;
const anchorAlignment = this.delegate!.anchorAlignment || AnchorAlignment.LEFT;
const verticalAnchor: ILayoutAnchor = { offset: around.top, size: around.height, position: anchorPosition === AnchorPosition.BELOW ? LayoutAnchorPosition.Before : LayoutAnchorPosition.After };
@@ -246,7 +246,7 @@ export class ContextView extends Disposable {
DOM.addClass(this.view, anchorPosition === AnchorPosition.BELOW ? 'bottom' : 'top');
DOM.addClass(this.view, anchorAlignment === AnchorAlignment.LEFT ? 'left' : 'right');
const containerPosition = DOM.getDomNodePagePosition(this.container);
const containerPosition = DOM.getDomNodePagePosition(this.container!);
this.view.style.top = `${top - containerPosition.top}px`;
this.view.style.left = `${left - containerPosition.left}px`;
this.view.style.width = 'initial';