BookinglyTech News
Software

tsgolint llega a v7 y acelera el linting type-aware en Oxlint

El motor de linting type-aware tsgolint, usado por Oxlint, sale en versión estable v7, integrando el compilador TypeScript en Go y duplicando el rendimiento respecto a ESLint.

2 min de lecturaInfoQ0 vistas

tsgolint v7: velocidad y compatibilidad

tsgolint, el motor que impulsa el linting type-aware de Oxlint, ha salido con una versión estable v7. La actualización trae velocidad nativa de Go a las reglas de TypeScript que los equipos han estado ejecutando a través de ESLint. En lugar de recrear un analizador de tipos, tsgolint construye programas TypeScript reales sobre typescript-go, la versión oficial en Go del compilador que se incluye en TypeScript 7.

Oxlint, escrito en Rust, gestiona la búsqueda de archivos, la configuración y las reglas sintácticas ligeras, delegando el trabajo type-aware al binario Go. El resultado es un diagnóstico estructurado que se integra con el flujo de trabajo de ESLint, pero con una latencia significativamente menor.

Cambios clave

  • Cobertura de reglas: la v7 cubre 59 de las 61 reglas type-aware de typescript-eslint, un salto desde los 43 de la alfa de diciembre.
  • Rendimiento: los benchmarks internos muestran que el build estable es entre 12 y 18 veces más rápido que ESLint con typescript-eslint en proyectos como microsoft/vscode, microsoft/typescript, typeorm y vuejs/core en un Apple M4 Pro.
  • Diagnósticos combinados: con los flags --type-check y --type-aware se obtienen errores del compilador junto a las advertencias del linter, todo desde el mismo programa TypeScript.
  • Timing por regla: la salida oxlint --type-aware --debug timings permite identificar qué reglas son las más costosas.

Instalación y uso

pnpm add -D oxlint oxlint-tsgolint@7
pnpm oxlint --type-aware

Se pueden fijar los flags en oxlint.config.ts o .oxlintrc.json.

Compatibilidad y migración

El linting type-aware requiere TypeScript 7.0 o superior; opciones de tsconfig legacy como baseUrl no son compatibles y los proyectos que usen características retiradas de TypeScript 6 deben migrar primero.

Para los usuarios de ESLint, existe la herramienta @oxlint/migrate que convierte la configuración existente.

Perspectivas futuras

El equipo de Oxlint planea finalizar las reglas restantes, integrar el linter con editores y optimizar el rendimiento en monorepos. El proyecto forma parte de un rework más amplio de la cadena de herramientas de VoidZero, con empaquetadores y formateadores también migrados a lenguajes nativos.

Enlaces útiles