Skip to content
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

feat(eslint-plugin): array-type distinguish whether readonly or not #4066

Merged
merged 4 commits into from Nov 23, 2021

Conversation

koooge
Copy link
Contributor

@koooge koooge commented Oct 28, 2021

PR Checklist

Overview

Hi there,
array-type rule regards readonly T[] same asT[], and ReadonlyArray<T> same as Array <T>. I think array-type should be able to distinguish them.

like these:

readonly: 'array'

  4:12  error  Array type using 'ReadonlyArray<string>' is forbidden. Use 'readonly string[]' instead  @typescript-eslint/array-type

readonly: 'generic'

 2:12  error  Array type using 'readonly string[]' is forbidden. Use 'ReadonlyArray<string>' instead  @typescript-eslint/array-type

readonly: 'array-simple'

4:12 error  Array type using 'ReadonlyArray<string>' is forbidden for simple types. Use 'readonly string[]' instead  @typescript-eslint/array-type
8:16 error  Array type using 'readonly T[]' is forbidden for non-simple types. Use 'ReadonlyArray<T>' instead        @typescript-eslint/array-type

Signed-off-by: koooge <koooooge@gmail.com>
@typescript-eslint
Copy link
Contributor

Thanks for the PR, @koooge!

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 on https://opencollective.com/typescript-eslint. As a thank you, your profile/company logo will be added to our main README which receives thousands of unique visitors per day.

@codecov
Copy link

codecov bot commented Oct 28, 2021

Codecov Report

Merging #4066 (4c7aaf9) into master (6af7ca7) will decrease coverage by 0.00%.
The diff coverage is 75.00%.

❗ Current head 4c7aaf9 differs from pull request most recent head ca1b09f. Consider uploading reports for the commit ca1b09f to get more accurate results

@@            Coverage Diff             @@
##           master    #4066      +/-   ##
==========================================
- Coverage   93.33%   93.32%   -0.01%     
==========================================
  Files         152      152              
  Lines        8026     8030       +4     
  Branches     2575     2579       +4     
==========================================
+ Hits         7491     7494       +3     
  Misses        180      180              
- Partials      355      356       +1     
Flag Coverage Δ
unittest 93.32% <75.00%> (-0.01%) ⬇️

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

Impacted Files Coverage Δ
packages/eslint-plugin/src/rules/array-type.ts 97.18% <75.00%> (-1.33%) ⬇️

@JoshuaKGoldberg
Copy link
Member

Hi @koooge, thanks for sending this PR! This is a non-trivial change that hasn't been discussed in an issue, which means it doesn't have a lot of visibility to maintainers or community members. Please file an issue to discuss and follow the template to explain why you'd like this change.

As an apology for not making this explicitly clear enough, I've sent #4071.

Copy link
Member

@JoshuaKGoldberg JoshuaKGoldberg left a comment

Choose a reason for hiding this comment

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

Just tentatively requesting changes in the interest of keeping the code lean: this otherwise looks great to me, thanks!

packages/eslint-plugin/src/rules/array-type.ts Outdated Show resolved Hide resolved
@JoshuaKGoldberg JoshuaKGoldberg added awaiting response Issues waiting for a reply from the OP or another party and removed no linked issue labels Nov 1, 2021
Copy link
Member

@JoshuaKGoldberg JoshuaKGoldberg left a comment

Choose a reason for hiding this comment

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

Fantastic, thanks!

@bradzacher bradzacher added 1 approval PR that a maintainer has LGTM'd - any maintainer can merge this when ready enhancement New feature or request and removed awaiting response Issues waiting for a reply from the OP or another party labels Nov 1, 2021
@JoshuaKGoldberg

This comment has been minimized.

@armano2

This comment has been minimized.

@koooge

This comment has been minimized.

@armano2

This comment has been minimized.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 24, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
1 approval PR that a maintainer has LGTM'd - any maintainer can merge this when ready enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[array-type] ReadonlyArray is regarded as Array
4 participants