Validates a function, by wrapping the function and checking its return value through
validate function. If the return value does not match the expected type, it
returns IValidation.IError typed object. Otherwise there's no type error,
it returns IValidation.ISuccess typed object instead.
For reference, IValidation.IError.path would be a little bit different with
individual validate function. If the IValidation.IError occurs from
the return value, the path would start from $input.return.
By the way, if what you want is not finding every type errors, but just finding
the 1st type error, then use assertReturn instead. Otherwise, what you want
is not only validating return value, but also validating parameters, you can use
validateFunction instead.
Validates return value.
Validates a function, by wrapping the function and checking its return value through validate function. If the return value does not match the expected type, it returns IValidation.IError typed object. Otherwise there's no type error, it returns IValidation.ISuccess typed object instead.
For reference, IValidation.IError.path would be a little bit different with individual validate function. If the IValidation.IError occurs from the return value, the path would start from
$input.return
.By the way, if what you want is not finding every type errors, but just finding the 1st type error, then use assertReturn instead. Otherwise, what you want is not only validating return value, but also validating parameters, you can use validateFunction instead.
On the other hand, if you don't want to allow any superfluous properties, utilize validateEqualsReturn or assertEqualsReturn instead.