如何重置对象的属性值?

时间:2018-12-05 16:23:00

标签: typescript typescript2.0

我有自定义类型对象:

export interface IPupilFilter {
  Fullname: string;
  Gender: string;
  ClassType: number;
  Language: number;
  Class: number;
  ClassNumber: number;
  Phone: string;
  Movement: string;
}
public requestLoadPupils: IPupilFilter = <IPupilFilter>{};

在填写表格的过程中,此对象被填写相应的界面。

如何重置所有值属性并将其设置为null?

我尝试过:

this.requestLoadPupils = <IPupilFilter>{} as IPupilFilter;

我可以重置每个属性,例如:this.requestLoadPupils.Gender = null;但我不喜欢

1 个答案:

答案 0 :(得分:1)

您将为此使用Partial

public requestLoadPupils: Partial<IPupilFilter> = {};

然后您可以通过将其分配给新的空对象来清除该对象。

this.requestLoadPupils = {};

然后,当您完全确定表单已完全填写时,可以将其转换回完整的IPupilFilter

const pupilFilter = this.requestLoadPupils as IPupilFilter;

当您使用Partial包装接口时,基本上等同于将所有项目设置为可选。所以

type PartialIPupilFilter = Partial<IPupilFilter>

与:

interface PartialIPupilFilter {
  Fullname?: string;
  Gender?: string;
  ClassType?: number;
  Language?: number;
  Class?: number;
  ClassNumber?: number;
  Phone?: string;
  Movement?: string;
}

所有元素仍然被键入,但是您不需要在实例化时对其进行设置。