diff --git a/src/objects.ts b/src/objects.ts index ef6298f..dd25586 100644 --- a/src/objects.ts +++ b/src/objects.ts @@ -1,9 +1,9 @@ // don't change this interface interface Book { title: string; - author: string | string[]; + author?: string | string[]; publishedYear: number; - genre: string; + genre?: string; pageCount?: number; ISBN?: string; } @@ -27,8 +27,13 @@ function createBook( genre: string ): Book { // write your code here... - - return {} as Book; // replace "{} as Book" with what you see is fit + const firstBook: Book = { + title, + author, + publishedYear, + genre, + }; + return firstBook; // replace "{} as Book" with what you see is fit } // DO NOT CHANGE THE LINE OF CODE BELOW (you can use it for testing your code) @@ -50,8 +55,11 @@ const book = createBook( */ function printBookTitleAndYear(book: Book): string { // write your code here... - - return ""; // replace empty string with what you see is fit + // const theBook: Book = { + // title: "The Book", + // publishedYear: 1965, + // }; + return `${book.title}, ${book["publishedYear"]}`; // replace empty string with what you see is fit } /** @@ -66,7 +74,7 @@ function printBookTitleAndYear(book: Book): string { */ function addPageCount(book: Book, pageCount: number): Book { // write your code here... - + book.pageCount = pageCount; return book; } @@ -88,7 +96,7 @@ function addPageCount(book: Book, pageCount: number): Book { */ function addISBN(book: Book, ISBN: string): Book { // write your code here... - + book.ISBN = ISBN; return book; } @@ -110,7 +118,7 @@ function addISBN(book: Book, ISBN: string): Book { */ function updatePublishedYear(book: Book, newYear: number): Book { // write your code here... - + book.publishedYear = newYear; return book; } @@ -135,6 +143,13 @@ function updatePublishedYear(book: Book, newYear: number): Book { */ function addSecondAuthor(book: Book, additionalAuthor: string): Book { // write your code here... + if (Array.isArray(book.author)) { + book.author.push(additionalAuthor); + } else { + book.author = book.author + ? [book.author, additionalAuthor] + : [additionalAuthor]; + } return book; }