Fix timeout-dependent return types of add
and addAll
#206
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.
Hi. The return types of
add
andaddAll
are currently a bit funky. I think there was a regression.For example, the following code raises a type error for
b
because it thinksa
isnumber | void
:That doesn't seem right. It should only return
number | void
when bothtimeout=number
andthrowOnTimeout=false|undefined
. But in the example above I haven't even specifiedtimeout
, so thevoid
behavior should never surface.This PR fixes the return types:
timeout=number
andthrowOnTimeout=true
, return type isThing
.timeout=number
andthrowOnTimeout=false|undefined
, return type isThing | void
.timeout=undefined
andthrowOnTimeout=true|false|undefined
, return type isThing
.To further emphasize the relationship between
timeout
andthrowOnTimeout
I also added a note in the readme and a warning message in the console.