属性“selectedHero”没有初始值设定项,并且在构造函数中没有明确分配

时间:2021-02-02 19:54:00

标签: javascript angular frontend

我学习了 Angular,但在教程中遇到了问题。所以我在这里https://angular.io/tutorial/toh-pt2,你可以看到这条线

  selectedHero: Hero;

问题是我有错误

<块引用>

属性 'selectedHero' 没有初始化器,也不是绝对的 在构造函数中赋值。

我找到了这个问题的解决方案。我写了

selectedHero!: Hero;

它工作正常,但不是很好的做法。知道如何更好地编码吗?

2 个答案:

答案 0 :(得分:0)

这是因为 TypeScript 2.7 包含严格的类检查,所有属性都应在构造函数中初始化。

解决方法:

  1. 在您的 tsconfig.json 文件中将 strictPropertyInitialization 设置为 false
"strictPropertyInitialization": false

这将禁用所有项目的严格检查属性初始化。 2. 用默认值初始化你的属性

 selectedHero: Hero = null;
  1. 如果您不喜欢初始化的想法,您可以将属性标记为可选或使其为 Type Hero 或 undefined:
 selectedHero?: Hero;
// or
selectedHero: Hero | undefined

答案 1 :(得分:0)

使属性可选

selectedHero ?: 英雄;