Corrija automáticamente los errores de TS cuando haya correcciones de código disponibles.
Para la mayoría de los casos de uso, debería poder utilizar ts-autofix
directamente a través de npx
.
npx ts-autofix list
de la raíz de su proyecto TS enumerará las correcciones disponibles.npx ts-autofix
intentará ejecutar todas las correcciones disponibles. Si su tsconfig no está en ./tsconfig.json
, debe agregar arg --project <pathToTsConfig>
a ambos comandos.
También puede filtrar qué correcciones se aplican utilizando los argumentos --fixes
o --errors
.
Argumento | Descripción |
---|---|
--proyecto | La ruta a su archivo tsconfig. por ejemplo, npx ts-autofix [list] --project foo/tsconfig.json |
-F --arreglos | El nombre de uno o más arreglos TS que se aplicarán. Utilice npx ts-autofix list para buscar correcciones disponibles.por ejemplo, npx ts-autofix --fixes unusedIdentifier inferFromUsage |
-mi --errores | Los códigos de error de TypeScript para buscar soluciones. por ejemplo, npx ts-autofix --errors TS6133 7006 |
--tsCliArgs | Argumentos CLI adicionales para que tsc anule las opciones del compilador. por ejemplo, si está intentando aumentar el rigor de su proyecto, puede pasar el indicador de compilador adicional que está intentando aplicar. por ejemplo, npx ts-autofix [list] --tsCliArgs "--noImplicitAny" |
También es posible utilizar ts-autofix
como biblioteca, lo que le brinda más control sobre cómo se ejecuta y aplica las correcciones.
p.ej
import { tsAutoFix } from `ts-autofix` ;
tsAutoFix ( {
tsConfigPath : "foo/tsconfig.json" ,
diagnosticsFilter : ( diag ) => diag . code === 6133 ,
} ) ;
La entrada a tsAutoFix
es un objeto de configuración de tipo TsAutoFixOptions
.
type TsAutoFixOptions = {
tsconfigPath : string ;
compilerOptionsOverrides ?: ts . CompilerOptions ;
diagnosticsFilter ?: ( diagnostic : ts . Diagnostic ) => boolean ;
codeFixFilter ?: ( codeFixAction : ts . CodeFixAction ) => boolean ;
preprocessCodeChanges ?: ( changes : ts . TextChange [ ] , sourceFile : ts . SourceFile , diagnostic : ts . Diagnostic ) => ts . TextChange [ ] ;
} ;
Opción | Descripción |
---|---|
tsconfigPath | (obligatorio) La ruta al tsconfig.json de su proyecto. |
opciones del compilador Anulaciones | Anulaciones opcionales de las opciones del compilador en su tsconfig. |
diagnósticoFiltro | Una devolución de llamada opcional para filtrar qué diagnósticos/errores de TypeScript intentar encontrar correcciones. Si no se define, se utilizan todos los diagnósticos. Devuelve true para incluir ese diagnóstico. |
códigoFixFilter | Una devolución de llamada opcional para filtrar qué correcciones aplicar. Si no se define, se aplican todas las correcciones. Devuelve true para incluir esa solución. |
preprocesoCódigoCambios | Una devolución de llamada opcional para modificar las correcciones antes de que se apliquen. Esto puede devolver changes modificados u omitir cambios individuales, pero no puede modificar sourceFile o diagnostic directamente. |
Por ejemplo, podría utilizar preprocessCodeChanges
para modificar los reemplazos sugeridos para que los comentarios de línea se conserven al eliminar una variable.
import { tsAutoFix } from "ts-autofix" ;
import type * as ts from "typescript"
const preprocessCodeChanges = (
changes : ts . TextChange [ ] ,
sourceFile : ts . SourceFile ,
diagnostic : ts . Diagnostic
) : ts . TextChange [ ] => {
for ( const change of changes ) {
// If the change is purely a deletion
if ( ! change . newText ) {
let { start , length } = change . span ;
const removedText = sourceFile . text . substring ( start , start + length ) ;
// Skip leading line comments when removing code.
const match = removedText . match ( / ^(s*//.*r?n)+ / ) ;
if ( match ) {
change . span . start += match [ 0 ] . length ;
change . span . length -= match [ 0 ] . length ;
}
}
}
return changes ;
} ;
tsAutoFix ( {
tsConfigPath : "foo/tsconfig.json" ,
preprocessCodeChanges
} ) ;