如何将FormControl结果用于接口实例?

时间:2018-11-18 20:58:38

标签: typescript angular-forms

我在FormGroup实例中具有表单,并且在提交后,我应该将填充值设置为由接口方案创建的对象。但是当我直接尝试这样做时,我陷入了错误:

  

错误   src / app / modules / objects / object-form / object-form-components / object-information / object-information.component.ts(97,9):   错误TS2322:键入'{title:any; type_id:任何;依据:任何;   问题:任何; material_id:任何; ' 不是   可分配给“ ObjectFormComponent”类型。对象文字只能   指定已知属性,并且类型中不存在“标题”   “ ObjectFormComponent”。

const controls = this.informationForm.controls;
export interface ObjectCreateRequest {
  title: string;
  type_id: string;
  problems: string[];
  material_id: string;
}

const request: ObjectCreateRequest = {
  title: controls.title.value,
  type_id: controls.type.value.id,
  problems: controls.problems.value.map(item => item.id),
  material_id: (controls.material.value ? controls.material.value.id : null)
};

将所有类型为any的控件组成,这对接口无效。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果您仔细阅读错误消息,您的错误似乎就很清楚了。具体来说,'title' does not exist in type 'ObjectFormComponent'。请注意,该错误不是描述您发布的代码-请查看错误中的文件名和行号以查找相关行。

您在某处有一个对象定义了5个属性:titletype_idbasisesproblemsmaterial_id。您使用您的类型告诉TypeScript在某个地方期望ObjectFormComponent类型的对象,但是给了该对象。问题是,您的对象有一个名为title的字段,在ObjectFormComponent的定义中不存在。

这有意义吗?