diff options
| author | crupest <crupest@outlook.com> | 2019-03-11 21:01:28 +0800 |
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2019-03-11 21:01:28 +0800 |
| commit | 6e8434fa885bdb7ef9fd0f09a8cd29c0e17cef5b (patch) | |
| tree | ee57954f1bbe2c1b944d648b2887fc63a865a289 /Timeline/ClientApp/src/app/utilities | |
| parent | 6f02dc7094d1304501e7ffd6c39ecf89369202c7 (diff) | |
| download | timeline-6e8434fa885bdb7ef9fd0f09a8cd29c0e17cef5b.tar.gz timeline-6e8434fa885bdb7ef9fd0f09a8cd29c0e17cef5b.tar.bz2 timeline-6e8434fa885bdb7ef9fd0f09a8cd29c0e17cef5b.zip | |
Use strict check of typescript compiler.
Diffstat (limited to 'Timeline/ClientApp/src/app/utilities')
3 files changed, 17 insertions, 7 deletions
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: '<button (appDebounceClick)="clickHandler()"></button>' }) class DefaultDebounceTimeTestComponent { - @ViewChild(DebounceClickDirective) - directive: DebounceClickDirective; + + @ViewChild(DebounceClickDirective) directive!: DebounceClickDirective; clickHandler: () => void = () => { }; } @@ -24,10 +24,9 @@ class DefaultDebounceTimeTestComponent { template: '<button (appDebounceClick)="clickHandler()" [appDebounceClickTime]="debounceTime"></button>' }) 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<any>(); @@ -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<T>(value: T | undefined): T | null { + return value === undefined ? null : value; +} + +export function throwIfFalsy(value: any, name: string = '<unknown name>') { + if (!value) { + throw new Error(name + ' is falsy.'); + } +} |
