Is your feature request related to a problem? Please describe.
Having to write itz.AsOptionalNumber all the time is really cumbersome, there needs to be a simpler and cleaner way.
Describe the solution you'd like
The solution would be to introduce string literals back and be able to use 'as number?' as if it was a validator. Internally the same validators would still be used.
Describe alternatives you've considered
Really I don't think there's any simpler than that.
Additional context
The new possible validation values would be:
- Primitives:
'string', 'number', 'object', 'undefined', 'null', and 'boolean'
- Primitive Arrays:
'string[]', 'number[]', 'object[]', 'undefined[]', 'null[]', and 'boolean[]'
Before
const Headers = itz.A({
UserDomain: itz.String,
WholeFamily: itz.AsOptionalBoolean,
SomethingElse: itz.Either(itz.String, itz.AsNumber, itz.Undefined),
});
After
const Headers = itz.A({
UserDomain: 'string',
WholeFamily: 'as boolean?',
SomethingElse: itz.Either('string', 'as number', 'undefined'),
});
Is your feature request related to a problem? Please describe.
Having to write
itz.AsOptionalNumberall the time is really cumbersome, there needs to be a simpler and cleaner way.Describe the solution you'd like
The solution would be to introduce string literals back and be able to use
'as number?'as if it was a validator. Internally the same validators would still be used.Describe alternatives you've considered
Really I don't think there's any simpler than that.
Additional context
The new possible validation values would be:
'string','number','object','undefined','null', and'boolean''string[]','number[]','object[]','undefined[]','null[]', and'boolean[]'Before
After