如何在 angular 4 中修复“不能将'new'与类型缺少调用或构造签名的表达式一起使用”?

漆黑408

我正在尝试按照教程进行操作,但我遇到了编译器错误,因为它需要一个带有构造函数的标准类,但在教程中,这是如何完成的。也许自教程发布以来情况发生了变化,但我无法找到创建教程的人。我想完成它。

我收到的错误消息:

“不能将 'new' 与类型缺少调用或构造签名的表达式一起使用。”

我是 angular 的新手,请帮助我。

bookstore-front/src/app/book-detail/book-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/app/service/model/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
    }
}

如果我尝试更改私人书籍:Book = new Book();

私人书籍:书籍;

我收到这个错误

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)
命运女神法兹莉

是如果您需要/希望创建一个可能是自定义对象的实例,同时获得类型检查的好处,例如参数、返回类型或泛型 - 一个类是有意义的。如果您不创建实例 - 我们有接口可供我们使用,它们的好处来自不生成任何源代码,但允许我们在某种程度上“虚拟”类型检查我们的代码。是的教程在 angular 中使用 javaEE 标准,但它是有点不同,你可以这样写你的界面:

interface Book {
    id?: number;
    title: string;
    description?: string;
    unitCost?: number;
    isbn: string;
    publicationDate?: Date;
    nbOfPages?: number;
    imageURL?: string;
    language?: Book.LanguageEnum;
}
type LanguageEnum = 'ENGLISH' | 'FRENCH' | 'SPANISH' | 'PORTUGUESE' | 'ITALIAN' | 'FINISH' | 'GERMAN' | 'DEUTSCH' | 'RUSSIAN';
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
    }
export{
    Book,
    LanguageEnum,
    LanguageEnum
}

导入您需要的每个人并使用它们,以使用界面:

import { Book } from '../service/model/Book'; 

private book: Book = {title: 'title' , isbn: 'isbn' , ... }

并且无需将其转换为类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TS2351:不能对类型缺少调用或构造签名的表达式使用'new'。猫鼬

来自分类Dev

如何解决错误:(4, 1) TS2349:无法调用类型缺少调用签名的表达式。类型“typeof moment”没有兼容的调用签名

来自分类Dev

如何修复“ TS2349:无法调用类型缺少呼叫签名的表达式”

来自分类Dev

如何在 Angular 4 中调用新模板?

来自分类Dev

如何在 Angular 中为整个应用程序 angular 4 使用样式

来自分类Dev

选择的 Angular 4 不能与 *ngFor 一起使用

来自分类Dev

如何在表Angular4中使用唯一ID动态添加html行

来自分类Dev

如何在 angular2/4 中未调用的函数中引用组件的变量?

来自分类Dev

如何在 UnitTest Angular4 中调用/检查方法内的值

来自分类Dev

如何在运行时创建表达式以在Entity Framework中与GroupBy()一起使用?

来自分类Dev

如何在Swift中调用[self new]

来自分类Dev

如何在 Angular 4 中执行订阅到另一个订阅?

来自分类Dev

如何在 angular 4 中创建一个 json 数组以发布我的表单

来自分类Dev

如何在 angular4 中使用 node_modules 中的 svg 图标集包?

来自分类Dev

如何在angular 4中创建json对象并使用键/值对推送数组

来自分类常见问题

如何在Angular 4中翻译mat-paginator?

来自分类Dev

如何在Angular 4中刷新日期

来自分类Dev

如何在 Angular 4 中打印 json 数组?

来自分类Dev

如何在Angular4中访问json文件

来自分类Dev

如何在 Angular 4 中横向/操作 DOM

来自分类Dev

如何在 Angular 4 中禁用图像标签

来自分类Dev

如何在 Angular 4 中解析 Json 响应

来自分类Dev

如何在 Angular 4 或 7 中设置 Observable 属性?

来自分类Dev

如何在 Angular4“ngFor”中添加“@”符号?

来自分类Dev

我们如何使用angular-new-router在angular 1.4中的控制器内部观看表达式

来自分类Dev

如何在Angular表达式中获得一种范围变量?

来自分类Dev

如何在 Angular 4 中使用 SlickGrid(jQuery 遗留库)

来自分类Dev

如何在 angular 4 中使用回调函数?

来自分类Dev

如何在angular4的ngif中使用'or'语句?

Related 相关文章

  1. 1

    TS2351:不能对类型缺少调用或构造签名的表达式使用'new'。猫鼬

  2. 2

    如何解决错误:(4, 1) TS2349:无法调用类型缺少调用签名的表达式。类型“typeof moment”没有兼容的调用签名

  3. 3

    如何修复“ TS2349:无法调用类型缺少呼叫签名的表达式”

  4. 4

    如何在 Angular 4 中调用新模板?

  5. 5

    如何在 Angular 中为整个应用程序 angular 4 使用样式

  6. 6

    选择的 Angular 4 不能与 *ngFor 一起使用

  7. 7

    如何在表Angular4中使用唯一ID动态添加html行

  8. 8

    如何在 angular2/4 中未调用的函数中引用组件的变量?

  9. 9

    如何在 UnitTest Angular4 中调用/检查方法内的值

  10. 10

    如何在运行时创建表达式以在Entity Framework中与GroupBy()一起使用?

  11. 11

    如何在Swift中调用[self new]

  12. 12

    如何在 Angular 4 中执行订阅到另一个订阅?

  13. 13

    如何在 angular 4 中创建一个 json 数组以发布我的表单

  14. 14

    如何在 angular4 中使用 node_modules 中的 svg 图标集包?

  15. 15

    如何在angular 4中创建json对象并使用键/值对推送数组

  16. 16

    如何在Angular 4中翻译mat-paginator?

  17. 17

    如何在Angular 4中刷新日期

  18. 18

    如何在 Angular 4 中打印 json 数组?

  19. 19

    如何在Angular4中访问json文件

  20. 20

    如何在 Angular 4 中横向/操作 DOM

  21. 21

    如何在 Angular 4 中禁用图像标签

  22. 22

    如何在 Angular 4 中解析 Json 响应

  23. 23

    如何在 Angular 4 或 7 中设置 Observable 属性?

  24. 24

    如何在 Angular4“ngFor”中添加“@”符号?

  25. 25

    我们如何使用angular-new-router在angular 1.4中的控制器内部观看表达式

  26. 26

    如何在Angular表达式中获得一种范围变量?

  27. 27

    如何在 Angular 4 中使用 SlickGrid(jQuery 遗留库)

  28. 28

    如何在 angular 4 中使用回调函数?

  29. 29

    如何在angular4的ngif中使用'or'语句?

热门标签

归档