Replace tslint with ESLint + typescript-eslint#320
Merged
Conversation
757a128 to
bdd722a
Compare
d83d823 to
4ba713d
Compare
lancetarn
approved these changes
May 28, 2026
75ccf94 to
187ca59
Compare
4ba713d to
9d7457d
Compare
187ca59 to
f443322
Compare
9d7457d to
8358a83
Compare
TSLint was deprecated and archived in 2019. Replaces it with: - eslint@^8.57.0 (v8 required by @typescript-eslint@7 peer dep) - @typescript-eslint/eslint-plugin@^7.0.0 - @typescript-eslint/parser@^7.0.0 Uses legacy .eslintrc.js format for eslint@8 compatibility. Disables rules that fire on existing code to keep zero errors on first pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
8358a83 to
442f895
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tslint(deprecated/archived since 2019, no longer maintained)eslint@^10,@typescript-eslint/eslint-plugin@^8,@typescript-eslint/parser@^8tslint.json, addseslint.config.js(flat config format)lintscript:tslint -p tsconfig.json→eslint lib/ index.tsConfig approach
The new config mirrors the same permissiveness as the old
tslint.json— extends@typescript-eslint/recommendedand disables the equivalent of every rule that was explicitly turned off in tslint:no-namespace@typescript-eslint/no-namespaceno-var-requires@typescript-eslint/no-require-importsno-shadowed-variable@typescript-eslint/no-shadow@typescript-eslint/no-this-alias— integrations useconst self = thisResult
Zero errors on the existing codebase. 136 pre-existing unused-var issues surface as warnings (not errors) so the build doesn't break. These can be cleaned up separately.
Test plan
npm run lintexits 0🤖 Generated with Claude Code