experiments with more precise option types. impressive sometimes but … #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…two gotchas mean i don't want it in master for now:
let x: number|undefined;
const y = Option.of(x);
=> Inferred to Some<number|undefined> <-- i never want that type!
Need Option.from(x) to make it work.
another one:
List.of(Option.of(5), Option.none())
doesn't compile anymore. It says None is not compatible with Some.
Need List.of<Option> to make it work.
Also generally speaking I'm not sure it brings much apart from simple demos
(and making super nice apidocs) -- in the real world you don't deal with Some
and None much -- pretty quickly it's all Option anyway.