Я пытаюсь следовать учебному пособию, и я застрял в ошибке компилятора, потому что он ожидает стандартный класс с конструктором, но в учебном пособии именно так это и было сделано. Может быть, что-то изменилось с момента выпуска учебника, но я не могу понять человека, который создал учебник. Я хотел бы закончить это.
Сообщение об ошибке, которое я получаю:
"Невозможно использовать 'new' с выражением, тип которого не содержит вызов или подпись конструкции."
Я новичок в угловой, пожалуйста, помогите мне.
книжный магазин-передние / SRC / приложение / книга детализация / книга-detail.component.ts
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Book } from '../service/model/Book';
import 'rxjs/Rx';
import { BookService } from '../service/api/book.service';
@Component({
selector: 'bs-book-detail',
templateUrl: './book-detail.component.html',
styles: []
})
export class BookDetailComponent implements OnInit {
private book: Book = new Book();
constructor(private router: Router, private route: ActivatedRoute, private bookService: BookService) { }
ngOnInit() {
this.route.params
.map(params => params['bookId'])
.switchMap(id => this.bookService.getBook(id))
.subscribe(book => this.book = book);
}
delete() {
this.bookService.deleteBook(this.book.id)
.finally(() => this.router.navigate(['/book-list']))
.subscribe();
}
}
книжный авансовые / SRC / приложение / сервис / модель / Book
/**
* BookStore APIs
* BookStore APIs exposed from a Java EE back-end to an Angular front-end
*
* OpenAPI spec version: 1.0.0
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
/**
* Book resourse representation.
*/
export interface Book {
/**
* Identifier
*/
id?: number;
/**
* Title of the book
*/
title: string;
/**
* Summary describing the book
*/
description?: string;
/**
* Unit cost
*/
unitCost?: number;
/**
* ISBN number
*/
isbn: string;
/**
* Date in which the book has been published
*/
publicationDate?: Date;
/**
* Number of pages
*/
nbOfPages?: number;
/**
* URL of the image cover
*/
imageURL?: string;
/**
* Language in which the book has been written
*/
language?: Book.LanguageEnum;
}
export namespace Book {
export type LanguageEnum = 'ENGLISH' | 'FRENCH' | 'SPANISH' | 'PORTUGUESE' | 'ITALIAN' | 'FINISH' | 'GERMAN' | 'DEUTSCH' | 'RUSSIAN';
export const LanguageEnum = {
ENGLISH: 'ENGLISH' as LanguageEnum,
FRENCH: 'FRENCH' as LanguageEnum,
SPANISH: 'SPANISH' as LanguageEnum,
PORTUGUESE: 'PORTUGUESE' as LanguageEnum,
ITALIAN: 'ITALIAN' as LanguageEnum,
FINISH: 'FINISH' as LanguageEnum,
GERMAN: 'GERMAN' as LanguageEnum,
DEUTSCH: 'DEUTSCH' as LanguageEnum,
RUSSIAN: 'RUSSIAN' as LanguageEnum
}
}
Если я попытаюсь измениться
личная книга: книга = новая книга ();
до
Частная книга: Книга;
Я получаю эту ошибку
BookFormComponent.html:6 ERROR TypeError: Cannot read property 'title' of undefined
at Object.eval (BookFormComponent.html:6)
at Object.debugUpdateDirectives [as updateDirectives] (core.js:14697)
at checkAndUpdateView (core.js:13844)
at callViewAction (core.js:14195)
at execComponentViewsAction (core.js:14127)
at checkAndUpdateView (core.js:13850)
at callViewAction (core.js:14195)
at execEmbeddedViewsAction (core.js:14153)
at checkAndUpdateView (core.js:13845)
at callViewAction (core.js:14195)