Add Stripe.Emptyable type definition #1052
Merged
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.
r? @suz-stripe
cc @stripe/api-libraries
Defines
Stripe.Emptyable<T> = null | '' | T
type. Many params in the Stripe API has a "pass empty string to unset" idiom, and stripe-node converts nulls to empty strings over the wire. Presently, the type bindings encode all of these asT | null
, but this is a bit confusing because some of the docstrings recommend empty strings.I think adding an "Emptyable" wrapper like this will make the meaning of these type definitions a little bit more clear, and it also gives us a single place where we can document this behavior.
In VSCode, the present mouseover looks like
and the new one will be this:
It seems like VSCode omits mention of
| null
altogether, so the new mouseover is the only one that actually communicates the emptyable nature of the field .