Menu
Coddy logo textTech

Валидация автора книги

Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 52 из 56.

challenge icon

Задание

Улучшите конструктор класса Book, добавив валидацию. В данный момент Book принимает любое значение для параметра author, но он должен принимать только экземпляр Author.

Ваша задача:

  1. В конструкторе Book добавьте проверку if-else
  2. Если автор валиден (является экземпляром класса Author), используя author instanceof Author, установите this.#author = author
  3. В противном случае (автор невалиден): выведите в консоль ровно “Invalid author: must be Author instance”. Установите this.#author = null

Таким образом, книга все равно должна быть создана, даже с невалидным автором.

Попробуйте сами

import { Author } from './Author.js';
import { Book } from './Book.js';

// Тесты
const rowling = new Author('J.K. Rowling');

// Валидный случай (должен работать без ошибок)
const validBook = new Book('Harry Potter', rowling);
console.log('Author:', validBook.authorInfo); // Должно вывести: "Author: J.K. Rowling"

// Невалидные случаи (должно вывести сообщение, но все равно создать книгу)
const invalid1 = new Book('Fake Book', 'String Author');

Все уроки раздела Объектно-ориентированное программирование