From 6e8434fa885bdb7ef9fd0f09a8cd29c0e17cef5b Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 11 Mar 2019 21:01:28 +0800 Subject: Use strict check of typescript compiler. --- .../ClientApp/src/app/utilities/debounce-click.directive.spec.ts | 9 ++++----- Timeline/ClientApp/src/app/utilities/debounce-click.directive.ts | 6 ++++-- Timeline/ClientApp/src/app/utilities/language-untilities.ts | 9 +++++++++ 3 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 Timeline/ClientApp/src/app/utilities/language-untilities.ts (limited to 'Timeline/ClientApp/src/app/utilities') diff --git a/Timeline/ClientApp/src/app/utilities/debounce-click.directive.spec.ts b/Timeline/ClientApp/src/app/utilities/debounce-click.directive.spec.ts index 75710d0c..89f66b99 100644 --- a/Timeline/ClientApp/src/app/utilities/debounce-click.directive.spec.ts +++ b/Timeline/ClientApp/src/app/utilities/debounce-click.directive.spec.ts @@ -13,8 +13,8 @@ interface TestComponent { template: '' }) class DefaultDebounceTimeTestComponent { - @ViewChild(DebounceClickDirective) - directive: DebounceClickDirective; + + @ViewChild(DebounceClickDirective) directive!: DebounceClickDirective; clickHandler: () => void = () => { }; } @@ -24,10 +24,9 @@ class DefaultDebounceTimeTestComponent { template: '' }) class CustomDebounceTimeTestComponent { - debounceTime: number; + debounceTime: number | undefined; - @ViewChild(DebounceClickDirective) - directive: DebounceClickDirective; + @ViewChild(DebounceClickDirective) directive!: DebounceClickDirective; clickHandler: () => void = () => { }; } diff --git a/Timeline/ClientApp/src/app/utilities/debounce-click.directive.ts b/Timeline/ClientApp/src/app/utilities/debounce-click.directive.ts index feb0404e..1d01b671 100644 --- a/Timeline/ClientApp/src/app/utilities/debounce-click.directive.ts +++ b/Timeline/ClientApp/src/app/utilities/debounce-click.directive.ts @@ -7,7 +7,7 @@ import { debounceTime } from 'rxjs/operators'; }) export class DebounceClickDirective implements OnInit, OnDestroy { - private subscription: Subscription; + private subscription: Subscription | undefined; @Output('appDebounceClick') clickEvent = new EventEmitter(); @@ -34,6 +34,8 @@ export class DebounceClickDirective implements OnInit, OnDestroy { } ngOnDestroy() { - this.subscription.unsubscribe(); + if (this.subscription) { + this.subscription.unsubscribe(); + } } } diff --git a/Timeline/ClientApp/src/app/utilities/language-untilities.ts b/Timeline/ClientApp/src/app/utilities/language-untilities.ts new file mode 100644 index 00000000..f898039a --- /dev/null +++ b/Timeline/ClientApp/src/app/utilities/language-untilities.ts @@ -0,0 +1,9 @@ +export function nullIfUndefined(value: T | undefined): T | null { + return value === undefined ? null : value; +} + +export function throwIfFalsy(value: any, name: string = '') { + if (!value) { + throw new Error(name + ' is falsy.'); + } +} -- cgit v1.2.3