refactor(routerlicious): use strictNullChecks #23054
Open
+1,004
−640
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.
Description
Setting TSConfig
strictNullChecks: true
can help avoid numerous runtime errors by catching unhandlednull
/undefined
cases at compiletime. R11s has had this disabled for a very long time, and the code has not handled nulls very well because of it.This PR
Breaking Changes
Many types now have
| null
or| undefined
added to reflect the actual, implemented return/param values. Behavior should not be changing, but types are.Reviewer Guidance
This ended up being a large PR. I tried to keep the changes focused purely to handling undefined and null explicitly. This ended up requiring that I add a lot of
| null
andeslint-ignore-next-line @rushstack/no-new-null
. These should be switched to| undefined
with explicit conversion ofnull -> undefined
where needed, but I did not want to rock the boat too much.