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

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

以及为什么我们不在这里使用typescript的声明。

最佳答案

...想知道我们为什么以以下方式声明的目的...


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


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


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

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

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


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

关于javascript - typescript 中的变量声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58606771/

10-11 22:51
查看更多