我正在做Angular2的英雄项目https://angular.io/docs/ts/latest/tutorial/toh-pt2.html之旅。
<li *ngFor="let hero of heroes" (click)="onSelect(hero)">{{hero.name}}</li> 在这里,我可以使用以下函数通知当前的英雄名和id
onSelect(hero) {
alert(hero.id);
}但是为什么在官方教程中
onSelect(hero: Hero){
}为什么是英雄:英雄?
还有,onSelect(hero: Hero): void { }的含义是什么。
什么意思?
selectedHero: Heroes;
onSelect(hero: Heroes): void {
this.selectedHero = hero;
}请帮帮忙。
发布于 2017-02-27 13:08:16
当你键入“英雄”时,它会假设它有“任意”类型。当您说英雄:英雄时,您将变量的类型分隔为“Hero”,这意味着函数将只接受Hero类型的参数或它的抽象。
编辑:对于空部分,这是函数的返回类型。虚空意味着它什么也回不来。
EDIT2:
selectedHero: Hero
OnSelect(hero: Hero): void{
this.selectedHero = hero;
}所以'selectedHero:英雄‘部分你定义了一个形形色色的’英雄‘'selectedHero’。
您定义您的函数“OnSelect”,它接受“英雄”类型的参数“英雄”。“英雄”将是用于访问函数'OnSelect‘中的参数的名称。
函数返回void,这意味着它不返回任何内容,只执行函数中声明的操作。
this.selectedHero =英雄的部分;更棘手。在组件中,您定义了一个名为“英雄”的Hero变量。它超出了函数的范围。“这”指的是您所在的组件类,它是用来访问它的关键字。因此,要访问函数之外但仍位于对象中的变量,请使用关键字“this”。
所以当你点击一个英雄时,OnSelect函数就会被触发,你会传递你刚才点击的英雄(英雄:‘英雄’)。然后,将当前对象( this.selectedHero )的英雄设置为刚才单击的英雄(英雄:英雄)。
每次单击英雄时,它都会将selectedHero替换为您单击的那个。
PS:我对' this‘关键字的解释是尽可能抽象的,我知道它比我解释的要多得多,但这是为了询问的人,因为他是刚开始发展的。
发布于 2017-02-27 13:09:15
发布于 2017-02-27 13:06:56
在打字稿中,它表示英雄的类型,它的类型是对象“英雄”。
当英雄是一个阶级,
export class Hero {
id: number;
name: string;
}
onSelect(hero: Hero){}https://stackoverflow.com/questions/42486561
复制相似问题