该问题是由于在使用某些Angular表单控件时,TypeScript无法推断其中的类型,因为这些控件实现的类型没有索引签名。要解决这个问题,可以将控件类型强制转换为具有索引签名的类型。
下面是一个例子,假设我们需要从表单中获取一个'username”字段的值:
import { Component } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
@Component({
selector: 'my-app',
template: `
`,
})
export class AppComponent {
myForm: FormGroup;
constructor(private fb: FormBuilder) {
this.myForm = this.fb.group({
username: '',
});
}
onSubmit() {
const usernameControl = this.myForm.controls['username'];
// 将控件类型强制转换为具有索引签名的类型
const usernameValue: string = usernameControl.value as string;
console.log(usernameValue);
}
}