这个奇怪的JavaScript代码如何工作?神秘结肠

时间:2016-10-31 12:15:41

标签: angularjs typescript

我正在关注官方的Angular 2教程,然后我看到了这段代码:

const HEROES: Hero[] = ...

我不明白在HEROES之后冒号是怎样的,我在JavaScript和TypeScript中找不到关于冒号使用的任何文档。我认为冒号只用于对象“key:value”和三元运算符。

export class Hero {
  id: number;
  name: string;
}

const HEROES: Hero[] = [
  { id: 11, name: 'Mr. Nice' },
  { id: 12, name: 'Narco' },
  { id: 13, name: 'Bombasto' },
  { id: 14, name: 'Celeritas' },
  { id: 15, name: 'Magneta' },
  { id: 16, name: 'RubberMan' },
  { id: 17, name: 'Dynama' },
  { id: 18, name: 'Dr IQ' },
  { id: 19, name: 'Magma' },
  { id: 20, name: 'Tornado' }
];

你能帮我理解这个冒号语法吗?

其他问题的答案没有解释打字稿,而且它是一种特殊的语法。

3 个答案:

答案 0 :(得分:1)

这是基本的打字稿声明和初始化。有关详细信息,请参阅此链接

https://www.typescriptlang.org/docs/handbook/basic-types.html

答案 1 :(得分:1)

这是TypeScript代码,这就是你在TypeScript中声明(注释)变量type的方法。声明意味着HEROES的类型应为Hero[],即Hero个对象的数组。

var HEROES: Hero[];

TypeScript编译器将使用此信息来防止对此变量的错误分配 - 例如,您无法将number分配给HEROES (不仅仅因为后者是常量)你的代码,但因为它是一个类型错误)

类型声明可以在强类型编程语言中找到;例如,C#中的等价物将是:

Hero[] HEROES;

答案 2 :(得分:0)

const HEROES: Hero[] = [
...
];

:是一种在TypeScript语言中指定变量类型的方法,此处HEROES是一个Hero实例数组。

这种表示法称为类型注释,请参考this