如何重置对象中的属性值?

How to reset value of properties in object?

我有自定义类型对象:

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

在填表的过程中,该对象被填入对应的界面。

如何重置所有值属性并设置为空?

我试过了:

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

我可以像这样重置每个 属性:this.requestLoadPupils.Gender = null; 但我不喜欢那样

您将为此使用 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;
}

所有元素仍然是类型化的,但您不需要在实例化时设置它们。