打字稿中的变量声明

时间:2019-10-29 11:41:58

标签: javascript typescript

我对角度分量内部的变量声明感到困惑,想知道为什么我们以下面的方式声明变量的目的

 export class AppComponent {
  serverElements = [];
  newServerName = '';
  newServerContent = '';
}

以及我们为什么不使用打字稿的type声明。

1 个答案:

答案 0 :(得分:2)

  

...想要了解目的,为什么我们以下面的方式进行声明...

这些是带有初始化程序的属性声明。产生的属性将存在于该类的实例上(并且将是公共的,就像它们前面有public一样。)

  

...以及为什么我们不使用打字稿的类型声明...

TypeScript将根据初始化值(在the documentation中提供更多信息)来推断类型。如果要在定义某项内容时进行初始化,则通常无需显式提供该类型。

也就是说,serverElements应该有一个类型,因为它最终将是never[](在TypeScript的最新版本中),这可能不是作者想要的。例如,如果它应该是ServerElement个实例的数组:

export class AppComponent {
  serverElements: ServerElement[] = [];
  newServerName = '';
  newServerContent = '';
}

newServerNamenewServerContent都被推断为string,这是合理的。