我有自定义类型对象:
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;
但我不喜欢
答案 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;
}
所有元素仍然被键入,但是您不需要在实例化时对其进行设置。