如何定义组件的输入?

How can I define an input for a component?

我为组件定义了一个输入,例如:@Input() person: Person 但是我遇到了这个错误:属性 'person' 没有初始化器并且在构造函数中没有明确分配 !!!。甚至,Person 模型也被导入了。对于任何类型的输入变量,如字符串、数字等,都会发生此错误... 当我将输入变量的类型更改为'any'时,问题就解决了! 如何在没有上述错误的情况下为组件定义其类型的输入?

您还没有分享您的代码,所以不确定您在哪里添加 @Input() 装饰器,这里是如何在组件中添加 @Input() 装饰器的工作示例。

您可以检查实现并将其与您所做的相匹配。

@Eliseo 评论后更新: 在 Angular 12 中你有一个 strictPropertyInitialization,你可以使用“明确赋值断言”,(在声明输入时添加一个!)@Input() person!: Person; 或通过缺陷 @Input() person: Person=new Person() 给出一个值

import { Component, Input, OnInit } from '@angular/core';

@Component({
 selector: 'app-person',
 templateUrl: './person.component.html',
 styleUrls: ['./person.component.scss'],
})

export class PersonComponent implements OnInit {
 @Input() person!: Person;

 constructor() {}

 ngOnInit(): void {}
}