使用@Input装饰器时,如何解析“属性'foo'没有初始化程序,并且在构造函数中未明确分配”?

时间:2018-11-09 10:59:32

标签: angular typescript

如何在不删除严格类型的情况下正确初始化具有@Input装饰器的属性?

下面的代码是显示此警告的内容

@Input
foo: FormGroup;

3 个答案:

答案 0 :(得分:2)

无法定义装饰器,以便Typescript知道它将执行字段初始化。唯一的选择是在字段中添加一个明确的赋值修饰符:

@Input
foo!: FormGroup;

这将仅禁用对此字段的检查。您可以阅读有关此断言here

的更多信息

答案 1 :(得分:2)

道具需要附加一个感叹号,即 foo!: FormGroup.

相关的 Issue

答案 2 :(得分:1)

您可以使用“ ”将属性设置为可选。

@Input
foo?: FormGroup;

此外,您可以在选择器组件中进行输入

selector: 'app-name[foo]'

因此只有在绑定了foo输入的情况下才选择组件。