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.
What kind of change does this PR introduce?
What is the current behavior?
Fixes #55
Currently, the return type for most functions is:
Which means that a return type of either
{null, null}
or{{key: string}, Error}
is technically possible even though it would not make any sense, so we have to manually check that data AND error are not null.What is the new behavior?
By changing the return types to something like:
We basically narrow it down to
data or error
, notdata and/or error
as a possible return.This also makes sure that we don't accidentally return
{null, null}
, for example, which would not have been reported as an error by typescript before.Additional context
I also noticed that most of the
try... catch
blocks would show a warning because theerror
variable incatch (error)
is not typed so it was reporting asunknown
and unknown cannot be cast to either Error or null. As such, I also modified alltry... catch
statements to casterror
asError
in the meantime. Eventually, some custom errors would be required, i think: