Как присвоить объекту значение null в TypeScript
Я изучаю Angular по учебному проекту. У меня стоит 11 версия, в учебнике используется 9. Определяется переменная:
selectedBook: BookModel = null;
В коде идет проверка если BookModel = null, то отображается весь список. В примере это все работает. Но у меня на эту строку
selectedBook: BookModel = null;
IDE ругается:
TS2322: Type 'null' is not assignable to type 'BookModel'
Почему в 11-ой версии ему уже не нравится null и как это теперь корректно записать? Записать вот так я тоже не могу:
selectedBook: BookModel = new BookModel('', '');
т.к. это будет уже не null, а на этом этапе у меня еще нет данных для этого объекта
Вот описание BookModel
export class BookModel {
id: string;
bookName: string;
constructor(id: string, bookName: string) {
this.id = id;
this.bookName= bookName;
}
}
Ответы (1 шт):
Скорее всего в настройках tsconfig для компилятора TypeScript указано проверять строгие ссылки на null указанием --strictNullChecks. Либо отключите эту опцию, либо явно указывайте null типы.
selectedBook: BookModel | null = null;
Или так:
type Nullable<T> = T | null;
selectedBook: Nullable<BookModel> = null;