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
fix(eslint-plugin): [unified-signatures] type comparison and exported nodes #839
fix(eslint-plugin): [unified-signatures] type comparison and exported nodes #839
Conversation
Thanks for the PR, @uniqueiniquity! 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 |
Codecov Report
@@ Coverage Diff @@
## master #839 +/- ##
==========================================
- Coverage 94.17% 94.13% -0.04%
==========================================
Files 112 112
Lines 4840 4843 +3
Branches 1344 1347 +3
==========================================
+ Hits 4558 4559 +1
- Misses 161 163 +2
Partials 121 121
|
…pescript-eslint into unifiedExports
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.
Thanks!
Currently, the
unified-signatures
rule doesn't handle exported function declarations because of the wayexport
is handled as a distinct AST node for ESTree.Here, we update the rule to handle this case.
EDIT: this PR also fixes type comparison in
typesAreEqual
. Currently, thetype
properties of the type annotations are checked for equality, so any two array types as return types or parameter types are treated the same. Here, we use TSLint's approach in comparing the actual text of the type. It's not perfect, but it's definitely better.