- Type checks with enumerated error codes
- String format type checks
- Array type checks
- Type guards (x is Type)
- Type assertions (assert x is Type and return; otherwise, throw)
- Customizable error messages (
ErrorMessageService.Map = /*Custom error code to error message format*/;)
- Promise-based API available
- Performance is not a goal; we are stressing safety, and usability over performance.
Promise-based APIWhile all type guards, and domain checks are synchronous, a promise-based API may be desirable when wanting to validate a large number of conditions, and using a final
catch()to handle errors.