The final major version of TSSLint reduces dependencies while improving migration paths and editor performance for TypeScript developers.

TypeScript developers seeking faster, more integrated linting have a significant update with TSSLint 3.0's release. Created by Johnson Chu as a spiritual successor to the deprecated TSLint, this final major version significantly reduces dependencies while streamlining developer workflows and editor integration.
Core Architectural Advantage
Unlike general-purpose linters like ESLint that operate as separate processes, TSSLint runs directly as a TypeScript Language Server plugin. By leveraging the existing TypeScript compiler's AST and TypeChecker without ESTree conversion, it eliminates redundant type-checking initialization. This architectural approach delivers near-instant diagnostics and fixes—significantly reducing editor lag during auto-fix operations that previously hampered large-scale projects.
What's New in Version 3.0
The headline change is the removal of esbuild for runtime operations. TSSLint now utilizes Node.js's native support for importing .ts files (requiring Node.js 22.6.0+). This dependency reduction improves startup speed and simplifies build configurations. Additional improvements include:
- Enhanced Migration Paths: A new
importTSLintRulesfeature allows direct import of legacy TSLint rules, easing transition for existing codebases - Unified Rule Handling: Integration with Arnaud Barre's TSL project provides consistent TypeScript linting rule management
- Directive Support: The
createIgnorePluginAPI enables configuration of ignore patterns via directive comments - Improved Developer Tooling: New
tsslint-docgenautomates rule documentation, while CLI cache files now reside in the OS temporary directory
Performance Trade-offs and Breaking Changes
Benchmarks revealed that multi-threading consumed 2x energy for only 1.5x speed gains due to Node.js memory constraints. Consequently, the --threads option was removed entirely. Other breaking changes include renaming --projects to --project and createDisableNextLinePlugin to createIgnorePlugin. The team indicates future exploration of resource-efficient multi-threading solutions.
Ecosystem Position and Limitations
While tools like Biome and oxlint focus on syntactic linting speed, TSSLint maintains unique advantages in type-aware analysis through direct TypeScript compiler integration. However, it remains incompatible with the upcoming TypeScript 7 native compiler (typescript-go) due to lacking Language Service Plugin support. As Chu noted on X: "Unless we have a significantly better solution, tsslint will not attempt to duplicate existing community efforts" for Go-based implementations.
Vue.js creator Evan You has endorsed TSSLint as "the most efficient way to run type-aware lint rules while leveraging the existing TS language server." With reduced dependencies and optimized editor integration, this final major version offers TypeScript teams a compelling alternative to ESLint-based workflows.
TSSLint 3.0 is available on GitHub.
Daniel Curtis is a UI Development Manager at Griffiths Waite, leading frontend engineering efforts with focus on TypeScript solutions and developer experience.

Comments
Please log in or register to join the discussion