Skip to content

Missing converter: triple-equals #187

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

Closed
JoshuaKGoldberg opened this issue Oct 2, 2019 · 3 comments · Fixed by #190
Closed

Missing converter: triple-equals #187

JoshuaKGoldberg opened this issue Oct 2, 2019 · 3 comments · Fixed by #190
Labels
area: incorrect converter Rule converter with incomplete, incorrect, or invalid rule names and/or arguments good first issue Good for newcomers; welcome aboard! status: accepting prs Please, send in a PR to resolve this! ✨

Comments

@JoshuaKGoldberg
Copy link
Member

💥 Missing Converter

  • tslint-to-eslint-config version: 1.2.0
  • typescript-eslint version: 2.3.2

TSLint Rule Name

triple-equals

@JoshuaKGoldberg JoshuaKGoldberg added good first issue Good for newcomers; welcome aboard! area: incorrect converter Rule converter with incomplete, incorrect, or invalid rule names and/or arguments hacktoberfest labels Oct 2, 2019
@JoshuaKGoldberg
Copy link
Member Author

The issue here is that this package doesn't know how to convert the TSLint rule into the equivalent ESLint rule. Accepting PRs to add in a converter! 🙌

docs/Development.md has a root overview for how to get started. Within that, docs/Architecture.md#rule-converters talks about how these converters operate. Check the typescript-eslint roadmap to see suggestions on equivalent ESLint rules to convert to.

See #189 for an example of a simple rule converter that was recently added in.

@JoshuaKGoldberg JoshuaKGoldberg added the status: accepting prs Please, send in a PR to resolve this! ✨ label Oct 2, 2019
@Mouzourides
Copy link
Contributor

Hey I'd like to give this a go

Mouzourides added a commit to Mouzourides/tslint-to-eslint-config that referenced this issue Oct 2, 2019
@Mouzourides
Copy link
Contributor

Mouzourides commented Oct 2, 2019

The TSLint options for the triple-equals rule are: [ "allow-null-check", "allow-undefined-check" ].
The ESLint options for eqeqeq rule are: ["smart", "always"]

The "allow-null-check" option best maps to the ESLint "smart "option. It also has the additional functionality of allowing comparing two literal values and evaluating the value of typeof. I have added this information in the "notice" array if the user has selected the "allow-null-check" option.
There is a way to only ignore null comparisons by selecting the ESLint "always" option with additional configuration e.g. ["error", "always", {"null": "ignore"}] however I believe it's encouraged to use the "smart" option and so I have implemented that.

The "allow-undefined-check" option does not have a direct mapping to ESLint. I have added this to the "notice" array and selected the "smart" option as I believe it to be the closest.

Not supplying an argument for TSLint defaults to the ESLint "always" option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: incorrect converter Rule converter with incomplete, incorrect, or invalid rule names and/or arguments good first issue Good for newcomers; welcome aboard! status: accepting prs Please, send in a PR to resolve this! ✨
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants