我有以下模特课程:
export class Book {
public name: string;
public id: string;
...
}
export class Author {
public firstName: string;
public lastName: string;
...
}
使用上述类的对象的my-component
触发跟随事件
this.archiveEntry.emit({ book: this.book, author: this.author });
其html中的父组件使用my-component
如下
<my-component (archiveEntry)="archiveEntryHandler($event)" ...> ...
并将后续处理程序绑定到此事件
public archiveEntryHandler({book: Book, author: Author}) {
let line = `"${book.name}", ${author.lastName}`;
...
}
但是出现以下编译错误
错误TS2552:找不到名称“书”。你是说“书”吗?
错误TS2552:找不到名称“作者”。您是说“作者”吗?
如何适当地破坏处理程序事件参数?
答案 0 :(得分:3)
在处理程序中
archiveEntryHandler({book: Book, author: Author})
您为book
和author
变量指定了别名。
{ book: aliasForBook, author: aliasForAuthor }
如果要为解构变量指定类型,请使用以下语法:
archiveEntryHandler({book, author}: {book: Book, author: Author})