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

feat(eslint-plugin): Add BigInt object type to default ban-types list#4970

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
JoshuaKGoldberg merged 3 commits intotypescript-eslint:mainfromtduyduc:patch-1
May 14, 2022

Conversation

tduyduc
Copy link
Contributor

PR Checklist

  • Addresses an existing open issue: fixes #000 No issues have been created about this feature
  • That issue was marked asaccepting prs No issues have been created about this feature
  • Steps inCONTRIBUTING.md were taken

Overview

The pull request title says it all: to addBigInt type to the default list of banned types, given thatbigint is a primitive type (just likeboolean,string,number, andsymbol).

Theban-types rule source code and the rule documentation have been changed.

armano2 reacted with thumbs down emoji
@nx-cloud
Copy link

nx-cloudbot commentedMay 13, 2022
edited
Loading

☁️ Nx Cloud Report

CI is running/has finished running commands for commitbb7f97a. As they complete they will appear below. Click to see the status, the terminal output, and the build insights.

📂 See all runs for this branch


✅ Successfully ran 43 targets

Sent with 💌 fromNxCloud.

@typescript-eslint
Copy link
Contributor

Thanks for the PR,@tduyduc!

typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community.

The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately.

Thanks again!


🙏Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently onhttps://opencollective.com/typescript-eslint. As a thank you, your profile/company logo will be added to our main README which receives thousands of unique visitorsper day.

@netlify
Copy link

netlifybot commentedMay 13, 2022
edited
Loading

Deploy Preview fortypescript-eslint ready!

NameLink
🔨 Latest commitbb7f97a
🔍 Latest deploy loghttps://app.netlify.com/sites/typescript-eslint/deploys/627fcbd6368afd0008584987
😎 Deploy Previewhttps://deploy-preview-4970--typescript-eslint.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to yourNetlify site settings.

@codecov
Copy link

codecovbot commentedMay 13, 2022
edited
Loading

Codecov Report

Merging#4970 (bb7f97a) intomain (77e15a9) willincrease coverage by1.61%.
The diff coverage isn/a.

@@            Coverage Diff             @@##             main    #4970      +/-   ##==========================================+ Coverage   92.64%   94.25%   +1.61%==========================================  Files         190      153      -37       Lines       10251     8305    -1946       Branches     3249     2702     -547     ==========================================- Hits         9497     7828    -1669+ Misses        502      263     -239+ Partials      252      214      -38
FlagCoverage Δ
unittest94.25% <ø> (+1.61%)⬆️

Flags with carried forward coverage won't be shown.Click here to find out more.

Impacted FilesCoverage Δ
packages/eslint-plugin/src/rules/array-type.ts97.18% <ø> (ø)
packages/eslint-plugin/src/rules/ban-types.ts100.00% <ø> (ø)
packages/type-utils/src/getTypeName.ts
...escript-estree/src/semantic-or-syntactic-errors.ts
packages/type-utils/src/getSourceFileOfNode.ts
packages/typescript-estree/src/simple-traverse.ts
packages/typescript-estree/src/ast-converter.ts
packages/typescript-estree/src/node-utils.ts
...internal/src/rules/no-typescript-default-import.ts
...ges/type-utils/src/getConstrainedTypeAtLocation.ts
... and29 more

@Josh-Cena
Copy link
Member

It is impossible to construct a wrapper object of typeBigInt, soBigInt andbigint are literally the same type, contrary tonumber orboolean.

@bradzacher
Copy link
Member

bradzacher commentedMay 14, 2022
edited
Loading

99.99999% of the time you don't want the capital version of the type, nor should you be constructing a wrapper object. Which is why the rule points people at using the lowercase type for the primitives.

@bradzacherbradzacher added the enhancementNew feature or request labelMay 14, 2022
@Josh-Cena
Copy link
Member

Ugh, I see we banSymbol as well, even when there's no danger. I see the reasoning.

Copy link
Member

@JoshuaKGoldbergJoshuaKGoldberg left a comment

Choose a reason for hiding this comment

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

Yup this makes sense, thanks!

tduyduc reacted with hooray emoji
@tduyduc
Copy link
ContributorAuthor

It is impossible to construct a wrapper object of typeBigInt, soBigInt andbigint are literally the same type, contrary tonumber orboolean.

Boxed objects ofsymbols andbigints cannot be instantiated vianew Symbol() ornew BigInt(1n), but can viaObject(Symbol()) andObject(1n) explicitly. Of course we won't need them generally all the time.

99.99999% of the time you don't want the capital version of the type, nor should you be constructing a wrapper object. Which is why the rule points people at using the lowercase type for the primitives.

It is also worth noting that the boxed primitive types can screw up TypeScript type guards. This can be a problem should we face bigger unions of types.

declarevarx:BigInt|bigint|undefined;if(xinstanceofObject){x;// is BigInt (object)}elseif(typeofx==='bigint'){x;// is bigint (primitive)}
Josh-Cena reacted with eyes emoji

@Josh-Cena
Copy link
Member

Oh I wasn't aware of the narrowing issue. It makes much more sense then 👍

tduyduc reacted with thumbs up emoji

@JoshuaKGoldbergJoshuaKGoldbergenabled auto-merge (squash)May 14, 2022 15:33
@JoshuaKGoldbergJoshuaKGoldberg merged commit1867728 intotypescript-eslint:mainMay 14, 2022
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull requestMay 19, 2022
This PR contains the following updates:| Package | Type | Update | Change ||---|---|---|---|| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.23.0` -> `5.25.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.23.0/5.25.0) || [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.23.0` -> `5.25.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.23.0/5.25.0) |---### Release Notes<details><summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/eslint-plugin)</summary>### [`v5.25.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#&#8203;5250-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5240v5250-2022-05-17)[Compare Source](typescript-eslint/typescript-eslint@v5.24.0...v5.25.0)##### Bug Fixes-   **eslint-plugin:** \[typedef] stop enforcing rule for assignment expressions ([#&#8203;4958](typescript-eslint/typescript-eslint#4958)) ([04a216c](typescript-eslint/typescript-eslint@04a216c))-   **eslint-plugin:** strict config should not extend recommended ([#&#8203;5005](typescript-eslint/typescript-eslint#5005)) ([05d71c2](typescript-eslint/typescript-eslint@05d71c2))-   **website:** correct Presets link to be Configs ([#&#8203;5004](typescript-eslint/typescript-eslint#5004)) ([e18e91c](typescript-eslint/typescript-eslint@e18e91c))##### Features-   **eslint-plugin:** \[no-empty-function] new allow option overrideMethods ([#&#8203;4923](typescript-eslint/typescript-eslint#4923)) ([13c05ae](typescript-eslint/typescript-eslint@13c05ae))-   **eslint-plugin:** deprecate `no-duplicate-imports` in favour of `import/no-duplicates` ([#&#8203;4973](typescript-eslint/typescript-eslint#4973)) ([1d2e41a](typescript-eslint/typescript-eslint@1d2e41a))-   update to TypeScript 4.7-rc ([#&#8203;4829](typescript-eslint/typescript-eslint#4829)) ([6fe783c](typescript-eslint/typescript-eslint@6fe783c))### [`v5.24.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#&#8203;5240-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5230v5240-2022-05-16)[Compare Source](typescript-eslint/typescript-eslint@v5.23.0...v5.24.0)##### Bug Fixes-   **eslint-plugin:** \[array-type] in fixer add missing parens for constructor types [#&#8203;4756](typescript-eslint/typescript-eslint#4756) ([#&#8203;4971](typescript-eslint/typescript-eslint#4971)) ([0377070](typescript-eslint/typescript-eslint@0377070))##### Features-   **eslint-plugin:** Add BigInt object type to default ban-types list ([#&#8203;4970](typescript-eslint/typescript-eslint#4970)) ([1867728](typescript-eslint/typescript-eslint@1867728))-   **eslint-plugin:** add new 'strict' config ([#&#8203;4706](typescript-eslint/typescript-eslint#4706)) ([4a500b2](typescript-eslint/typescript-eslint@4a500b2))</details><details><summary>typescript-eslint/typescript-eslint (@&#8203;typescript-eslint/parser)</summary>### [`v5.25.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#&#8203;5250-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5240v5250-2022-05-17)[Compare Source](typescript-eslint/typescript-eslint@v5.24.0...v5.25.0)**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser)### [`v5.24.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#&#8203;5240-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5230v5240-2022-05-16)[Compare Source](typescript-eslint/typescript-eslint@v5.23.0...v5.24.0)**Note:** Version bump only for package [@&#8203;typescript-eslint/parser](https://github.com/typescript-eslint/parser)</details>---### Configuration📅 **Schedule**: At any time (no schedule defined).🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.--- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.---This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).Co-authored-by: cabr2-bot <cabr2.help@gmail.com>Reviewed-on:https://codeberg.org/Calciumdibromid/CaBr2/pulls/1357Reviewed-by: 6543 <6543@noreply.codeberg.org>Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
@github-actionsgithub-actionsbot locked asresolvedand limited conversation to collaboratorsJun 14, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.
Reviewers

@JoshuaKGoldbergJoshuaKGoldbergJoshuaKGoldberg approved these changes

Assignees
No one assigned
Labels
enhancementNew feature or request
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

4 participants
@tduyduc@Josh-Cena@bradzacher@JoshuaKGoldberg

[8]ページ先頭

©2009-2025 Movatter.jp