PropertiesComparisonRule

Validation rule that compares two object properties.

Implements: IValidationRule

Description

The PropertiesComparisonRule class allows you to create a validation rule to compare two object properties.

Constructors

Creates a new validation rule and sets its arguments. See ObjectComparator.compare

public constructor(property1: string, operation: string, property2: string)

  • property1: string - a name of the first property to compare.
  • operation: string - a comparison operation: "==" ("=", “EQ”), “!= " ("<>”, “NE”); “<"/">” (“LT”/“GT”), “<="/">=” (“LE”/“GE”); “LIKE”.
  • property2: string - a name of the second property to compare.

Instance methods

validate

Validates a given value against this rule.

public validate(path: string, schema: Schema, value: any, results: ValidationResult[]): void

  • path: string - a dot notation path to the value.
  • schema: Schema - a schema this rule is called from
  • value: any - a value to be validated.
  • results: ValidationResult[] - a list with validation results to add new results.

Examples

let schema = new ObjectSchema()
    .withRule(new PropertyComparisonRule("field1", "NE", "field2"));

schema.validate({ field1: 1, field2: 2 });       // Result: no errors
schema.validate({ field1: 1, field2: 1 });       // Result: field1 shall not be equal to field2
schema.validate({});                             // Result: no errors

See also