-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stricter types #1077
Open
victorlin
wants to merge
12
commits into
victorlin/type-narrowing
Choose a base branch
from
victorlin/stricter-types
base: victorlin/type-narrowing
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Stricter types #1077
+44
−19
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I originally wanted `no-non-null-assertion`, then realized that it was part of the strict ruleset. All violations of this ruleset seem reasonable to address, which I will do in subsequent commits. <https://typescript-eslint.io/users/configs/#strict>
With the current code, it is not possible for these values to be undefined. Make this clear with type narrowing.
Instead of checking null-ness to initialize an empty array then using a non-null assertion which is loosely coupled to the preceding line, do both in one line.
With the current code, it is not possible for this to be undefined. Make this clear with type narrowing.
ESLint has no way of knowing that this is safe code. Add an exception for this line with a comment explaining what it does.
The parent constructor is automatically used by default. <https://typescript-eslint.io/rules/no-useless-constructor/>
This should not be used unless there is no other way for the TypeScript compiler to infer the type properly. In such cases, a comment with per-line exception should be used. I will address existing violations in subsequent commits.
This properly handles any new changes to input values defined by the form.
I remember this was tricky and couldn't figure out a way to map featured-analyses.yaml to SplashTile[] without this type assertion.
The type is already set on this variable.
I'm not sure if it's possible for a non-Error error to be thrown in these parts, but TypeScript thinks it is possible and it's easy to handle.
2 tasks
victorlin
commented
Nov 15, 2024
@@ -7,6 +7,7 @@ import { UserContext } from "../../../layouts/userDataWrapper"; | |||
import { GroupTile } from "./types"; | |||
import { Group } from "../types"; | |||
import { ExpandableTiles } from "../../ExpandableTiles"; | |||
import { InternalError } from "../../ListResources/errors"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I think this warrants a separate error boundary for static-site/src/components/Groups/Tiles/index.tsx
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 of proposed changes
While working on #1073, I thought it was reasonable to avoid casting and non-null assertions across the entire codebase. This is an attempt to enforce it and address outstanding violations.
Checklist