这个功能的签名是什么意思?

时间:2017-08-29 06:34:13

标签: angular function typescript types

我关注此tutorial,其live example并定义了此功能:

onSelect(hero: Hero): void {
  this.selectedHero = hero;
}

其中: void是我不理解的部分。这个部分是如何被调用的,它是做什么的?

我的想法:这是函数的返回类型,但如果是这种情况,则不应该

onSelect(hero: Hero): void {
  this.selectedHero = hero;
  return hero;
}

抛出错误?该应用程序在Plunker中工作正常,控制台中没有显示错误(我不知道这是否与Plunker有关)。

该函数的调用如下:

  <li *ngFor="let hero of heroes"
    [class.selected]="hero === selectedHero"
    (click)="onSelect(hero)">
    <span class="badge">{{hero.id}}</span> {{hero.name}}
  </li>

3 个答案:

答案 0 :(得分:4)

你的想法是正确的。它只是一种返回类型,就像C#等其他编程语言中的函数一样。当你返回Hero类型的对象时,它应该给出一个像Type 'Hero' is not assignable to type 'void'这样的错误,如下图所示:

enter image description here

答案 1 :(得分:2)

这意味着你的函数不会返回任何内容,你不能像这样调用

let result = this.onSelect(someHero); // Here compiler will give you an error that the function can't be in the right side of the statement

查看示例here。可能是Plunker的错误,因为在他们的网站上你可以看到错误。

答案 2 :(得分:1)

函数未返回任何内容[void]

onSelect(hero: Hero): void {
  this.selectedHero = hero;
}

调用此方法时,只需将传递给方法的英雄初始化类级别selectedHero。如果您看到typescript类,您将在组件中找到selectedHero:Hero变量。