在Angular中,如果一个属性被声明但没有初始化程序,它会抛出TS2564错误。要解决这个问题,我们需要给该属性一个初始值。
例如,假设我们有一个组件,其中包含一个formGroup属性,但没有初始值:
import { Component, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnInit {
formGroup: FormGroup;
constructor() { }
ngOnInit(): void {
}
}
现在,我们需要给这个属性一个初始值。这个初始值可以是一个新的FormGroup对象,也可以是从父组件传递过来的FormGroup对象。
例如,给属性一个新的FormGroup对象:
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnInit {
formGroup: FormGroup = new FormGroup({
name: new FormControl(''),
email: new FormControl('')
});
constructor() { }
ngOnInit(): void {
}
}
或者从父组件传递过来一组FormGroup对象:
import { Component, OnInit, Input } from '@angular/core';
import { FormGroup } from '@angular/forms';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnInit {
@Input() formGroup: FormGroup;
constructor() { }
ngOnInit(): void {
}
}
总之,为属性添加一个初始值即可解决Angular错误TS2564。