TSSLint, la herramienta de linting semántico para TypeScript creada por Johnson Chu, ha lanzado su versión 3.0. Anunciada como la “última gran release” del proyecto.
Esta actualización introduce mejoras importantes en rendimiento, reducción de dependencias y una transición más sencilla desde linters heredados como TSLint y ESLint.
Un linter integrado directamente en TypeScript
A diferencia de herramientas como ESLint, que funcionan como procesos externos, TSSLint opera directamente dentro del TypeScript Language Server.
Esto le permite:
- Usar el TypeChecker nativo de TypeScript
- Evitar conversiones a ESTree
- Generar diagnósticos casi instantáneos
- Reducir la latencia en editores grandes
Este enfoque mejora significativamente la experiencia en proyectos complejos donde el rendimiento del editor es crítico.
TSSLint 3.0 elimina esbuild y simplifica el runtime
Uno de los cambios más importantes en esta versión es la eliminación de la dependencia de esbuild.
Ahora TSSLint:
- Utiliza soporte nativo de Node.js para importar archivos
.ts - Reduce la complejidad del build system
- Mejora el tiempo de arranque
- Requiere Node.js 22.6.0 o superior
Este cambio simplifica el ecosistema y reduce la carga de mantenimiento.
Migración más fácil desde TSLint y ESLint
TSSLint 3.0 introduce varias mejoras para facilitar la migración desde herramientas antiguas:
- Compatibilidad con reglas de TSLint
- Paquete
@tsslint/compat-eslintactualizado - Nueva función
importTSLintRules - Integración con el proyecto TSL para unificar reglas
Esto permite a equipos grandes migrar gradualmente sin reescrituras completas.
Nuevas APIs y mejoras en el desarrollo
La versión 3 introduce nuevas herramientas para desarrolladores:
createIgnorePluginpara reglas de exclusióntsslint-docgenpara documentación automática de reglas- Mejora en JSDoc para
defineRules - Cache del CLI movido al directorio temporal del sistema
Estas mejoras hacen que el mantenimiento de reglas sea más limpio y escalable.
Cambios importantes y breaking changes
Como parte de su última gran versión, TSSLint 3.0 incluye cambios incompatibles:
--projectsrenombrado a--projectcreateDisableNextLinePluginreemplazado porcreateIgnorePlugin- Eliminación completa del flag
--threads - Requerimiento mínimo de Node.js 22.6.0
El equipo justificó la eliminación del multi-threading por su bajo rendimiento energético en comparación con las mejoras obtenidas.
Comparación con ESLint, Biome y oxlint
El ecosistema de linting en TypeScript está evolucionando rápidamente:
- ESLint + typescript-eslint: estándar más adoptado
- Biome / oxlint: extremadamente rápidos, pero menos profundos en análisis de tipos
- TSSLint: enfoque híbrido con análisis semántico completo
La ventaja clave de TSSLint es su integración directa con el TypeScript Compiler API, lo que le permite un análisis más profundo que herramientas puramente sintácticas.
Limitaciones importantes
TSSLint 3.0 no es compatible con:
- TypeScript 7 (typescript-go)
- Sistemas basados en plugins externos del Language Service
Esto podría limitar su adopción futura si el ecosistema TypeScript evoluciona hacia nuevos compiladores.
¿Qué es TSSLint?
TSSLint es un linter open-source diseñado para TypeScript que se integra directamente en el Language Server.
Fue creado por Johnson Chu como sucesor conceptual de TSLint, buscando resolver problemas de rendimiento y precisión en análisis de código.
Conclusión
TSSLint 3.0 marca el cierre de una etapa importante en el ecosistema de linting para TypeScript. Con menos dependencias, mejor integración con el Language Server y un enfoque más semántico, se posiciona como una alternativa avanzada a ESLint en proyectos donde el rendimiento y la precisión son críticos.
