Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

chore(eslint-plugin): [no-invalid-void-type] fixOptions typing to reflectminItems: 1#8312

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,7 +5,7 @@ import { getSourceCode } from '@typescript-eslint/utils/eslint-utils';
import { createRule } from '../util';

interface Options {
allowInGenericTypeArguments?: string[] | boolean;
allowInGenericTypeArguments?:[string, ...string[]] | boolean;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I suppose this makes sense technically 😄. But working with types like this can be irksome since you have to do it consistently. Is there an end-user reason for this change?

I'm not opposed to it, just curious how it came up.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Oh hi 😄.

It's true that this isn't a random PR out of nowhere. I was reviewing mytypescript-eslint rule typings (I have only 4 of them and they are for a no-deadline personal project, which means that there's room for everything + the kitchen sink in it) and originally I had something like the following:

'@typescript-eslint/no-invalid-void-type'?:Linter.RuleEntry<[{allowInGenericTypeArguments?:string[]|boolean;allowAsThisParameter?:boolean;}]>;

I checkedno-invalid-void-type's documentation and noticed that the typing forallowInGenericTypeArguments had tightened up. For some reason (probably because I wanted to find out whether I can get rule typings directly fromtypescript-eslint source) I checked the rule source and noticed immediately that theOptions typing for it was out-of-date, largely because it's at the top of the file I guess.

Is there an end-user reason for this change?

I figured that the out-of-date typing would affect DX fortypescript-eslint itself, but after creating a test script inpackages/eslint-plugin/src (of thetypescript-eslint repo) and doing:

importrulesfrom'./rules';constaVar=rules['no-invalid-void-type'].create(/* ??? */);

I felt I was in a bit too deep to be comfortable, so instead of figuring out how thecreate method fits in the whole scheme of things, and then doing a "Complex Bug With a Reproduction" issue with my fork oftypescript-eslint as the repo, I figured that I'd just take my chances and go straight to a PR.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Got it, makes sense. It looks like this is the onlyminItems: 1 in a non-deprecated rule, so I guess you're setting a good precedent. Nice 😄

allowAsThisParameter?: boolean;
}

Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp