From 87f7b00f9414b7633a080838a725a687461efd68 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 11 Mar 2019 21:21:02 +0800 Subject: Fix some compile bugs. --- .../src/app/todo/todo-item/todo-item.component.ts | 12 +++--------- .../user-login-success/user-login-success.component.ts | 14 ++++---------- .../ClientApp/src/app/utilities/language-untilities.ts | 9 ++++++--- 3 files changed, 13 insertions(+), 22 deletions(-) (limited to 'Timeline/ClientApp/src') diff --git a/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.ts b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.ts index 50829769..b5c51229 100644 --- a/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.ts +++ b/Timeline/ClientApp/src/app/todo/todo-item/todo-item.component.ts @@ -1,18 +1,12 @@ -import { Component, Input, OnInit } from '@angular/core'; +import { Component, Input } from '@angular/core'; import { TodoItem } from '../todo-item'; -import { throwIfFalsy } from 'src/app/utilities/language-untilities'; @Component({ selector: 'app-todo-item', templateUrl: './todo-item.component.html', styleUrls: ['./todo-item.component.css', '../todo-list-color-block.css'] }) -export class TodoItemComponent implements OnInit { - - @Input() item: TodoItem | undefined; - - ngOnInit() { - throwIfFalsy(this.item, 'item'); - } +export class TodoItemComponent { + @Input() item!: TodoItem; } diff --git a/Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.ts b/Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.ts index 1369d17d..22f6a41f 100644 --- a/Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.ts +++ b/Timeline/ClientApp/src/app/user/user-login-success/user-login-success.component.ts @@ -1,9 +1,9 @@ -import { Component, OnInit, Input } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { UserInfo } from '../entities'; import { InternalUserService } from '../internal-user-service/internal-user.service'; -import { throwIfFalsy } from 'src/app/utilities/language-untilities'; +import { throwIfNullOrUndefined } from 'src/app/utilities/language-untilities'; @Component({ selector: 'app-user-login-success', @@ -14,18 +14,12 @@ export class UserLoginSuccessComponent implements OnInit { displayLoginSuccessMessage = false; - userInfo: UserInfo | undefined; + userInfo!: UserInfo; constructor(private route: ActivatedRoute, private userService: InternalUserService) { } ngOnInit() { - const { currentUserInfo } = this.userService; - - if (!currentUserInfo) { - throw new Error('Route error. No login now!'); - } - - this.userInfo = this.userService.currentUserInfo!; + this.userInfo = throwIfNullOrUndefined(this.userService.currentUserInfo, () => 'Route error. No login now!'); this.displayLoginSuccessMessage = this.route.snapshot.paramMap.get('reason') === 'login'; } } diff --git a/Timeline/ClientApp/src/app/utilities/language-untilities.ts b/Timeline/ClientApp/src/app/utilities/language-untilities.ts index f898039a..be9df2dc 100644 --- a/Timeline/ClientApp/src/app/utilities/language-untilities.ts +++ b/Timeline/ClientApp/src/app/utilities/language-untilities.ts @@ -2,8 +2,11 @@ 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.'); +export function throwIfNullOrUndefined(value: T | null | undefined, + lazyMessage: () => string = () => 'Value mustn\'t be falsy'): T | never { + if (value === null || value === undefined) { + throw new Error(lazyMessage()); + } else { + return value; } } -- cgit v1.2.3