export interface IValidationResult { errors: Array, has_errors: Function, add_error: Function, remove_error: Function, } export interface IValidationError { _id?: string, title: string, text?: string } export default class ValidationResult implements IValidationResult { errors: IValidationError[] has_errors(): boolean { return this.errors?.length > 0; } add_error(prop: string, error: IValidationError): void { if (!this.errors) this.errors = []; error._id = prop; this.errors.push(error); } remove_error(property: string): void { const new_errors = []; for (const error of this.errors) { if (error._id != property) new_errors.push(error) } this.errors = new_errors; } }