sindresorhus / ow

Function argument validation for humans
https://sindresorhus.com/ow/
MIT License
3.8k stars 105 forks source link

const values #240

Open mfulton26 opened 2 years ago

mfulton26 commented 2 years ago

I want to be able to validate that a value is one of several specific values and then get a union type returned

e.g.

ow.string.oneOf(["on", "off"] as const)

The type would be StringPredicate<"on" | "off"> rather than simply StringPredicate or some subclass of Predicate<T>.

A different solution that might work would be to use ow.any(…) so that union types can be defined for more than just strings:

ow.any(ow.const("on" as const), ow.const("off" as const))
sindresorhus commented 2 years ago

I think both would be useful, but I haven't looked into whether it's possible.