Angular (15) 无法扩展类型化的 FormGroup

标签 angular forms

我正在摆弄类型化的 FormGroup。

我创建了以下内容:

export interface CustomFormControls {
  name: FormControl<string|null>
  content: FormControl<string|null>
}

export class CustomForm extends FormGroup<CustomFormControls> {
    constructor() {
        super({
            name: new FormControl('name'),
            content: new FormControl('content'),
        })
    }
}

然后我尝试在组件中使用它:

form: CustomForm = new CustomForm()

在我的模板中:

<form class="Form" [formGroup]="form">

但是,我收到以下错误:

Type 'CustomForm' is not assignable to type 'FormGroup<any>'.
  Types of property 'controls' are incompatible.
    Type 'CustomFormControls' is not assignable to type '{ [key: string]: AbstractControl<any, any>; }'.
      Index signature for type 'string' is missing in type 'CustomFormControls'.
         <form class="Form" [formGroup]="form">

我不确定我在那里做错了什么。

最佳答案

尝试为字符串键添加索引签名

export interface CustomFormControls {
  name: FormControl<string|null>
  content: FormControl<string|null>
  [key: string]: AbstractControl<any, any>;
}

关于Angular (15) 无法扩展类型化的 FormGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75663160/

相关文章:

angular - 对 decorators visual studio 2017 的实验性支持

angular - 无法将浏览器连接到 Karma 服务器(永久页面加载)

javascript - 使用 ng-disabled 的几个条件

forms - 如何使用 mootools 为表单元素设置值

javascript - 使用 Angular 从数组中删除取消选中的复选框值

angular - Angular 5 和输入框打字速度慢的严重问题

java - 通过Post发送BLOB到Java后端

javascript - 表单提交到 _blank 后如何刷新表单页面?

javascript - 如何填写表单并在页面加载时按提交

php - WooCommerce 以编程方式创建的产品忽略价格排序过滤器