打字稿 - 变量声明

Pet*_*ete 5 typescript angular

我不确定这是否是这个问题的地方,但我被告知代码审查不适合它.

我刚学习Angular 2和Typescript,所以我正在学习以下教程:

https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

在第三部分和第四部分之间,heroes变量的声明app.component.ts来自:

export class AppComponent {
    heroes = HEROES;
}
Run Code Online (Sandbox Code Playgroud)

至:

export class AppComponent {
    heroes: Hero[];
}
Run Code Online (Sandbox Code Playgroud)

我理解第一个将它设置为英雄数组的常量,但为什么第二个使用冒号而不只是将它设置为空数组?

将第二个更改为=实际会抛出表达式预期错误,所以基本上我只是想了解两者之间的差异.

Gün*_*uer 5

heroes: Hero[];
Run Code Online (Sandbox Code Playgroud)

不会将其设置为值.它只是定义了一个属性

  • name = heroes
  • type = Hero[]表示数组Hero
  • 没有赋值使其保持默认值null.

初始化它看起来像

heroes: Hero[] = [new Hero('Spidey'), new Hero('Batman')];
Run Code Online (Sandbox Code Playgroud)