chore(null): strict null checks for injected drawing-controller #6272
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.
Details
This PR adds the injected DrawingController + a few related/dependent files to the strict null check list.
The most interesting of the changes was updating the
DrawerInitData
type to not be generic. Previously, it was genericized over the data type an individual drawer expected (in particular, svg-drawer expects to only be used with something special). But the generic type usage meant that in practice, the individual drawers were written looking like they could safely assume what type of input they were given with the relevantany
conversions happening in the drawer controller/initiator, which wasn't really accurate - if a type assumption was wrong, it'd be the individual drawer that would have to be aware of the mistake. This change moves the type assertions in question to the drawer.Overall, these changes enabled autoadding several more assessment folders and brought us from 78% to 80% null checked:
Motivation
#2869
Context
n/a
Pull request checklist
yarn null:autoadd
yarn fastpass
yarn test
)<rootDir>/test-results/unit/coverage
fix:
,chore:
,feat(feature-name):
,refactor:
). SeeCONTRIBUTING.md
.