Quiero mantener noImplicitAny para archivos .ts / .tsx , pero deshabilitarlo para archivos .js . No quiero deshabilitar la opción checkJs porque todavía quiero que verifique los archivos .js .
es posible?
Aquí está mi base tsconfig.json :
{ "compilerOptions": { "target": "esnext", "module": "esnext", "moduleResolution": "node", "allowJs": true, "checkJs": true, "noEmit": true, "noEmitHelpers": true, "strict": true, "isolatedModules": true, "esModuleInterop": true, "skipLibCheck": true, "baseUrl": "./", "noImplicitAny": true, "noImplicitOverride": true, "strictNullChecks": true, "useUnknownInCatchVariables": true, "resolveJsonModule": false, "types": ["node"], "experimentalDecorators": true, "noErrorTruncation": true, "composite": true }, "include": [ "." ], "exclude": [ "./node_modules", "./build" ] }Desafortunadamente, esto no es algo que puedas lograr así. Una forma de lograrlo sería tener dos archivos tsconfig .
Básicamente, el tsconfig.json principal haría todo excepto checkJs y el segundo (llamémoslo tsconfig.typeCheckJs.json ) agregaría checkJs , notImplicitAny y noEmit .
Por ejemplo
// tsconfig.json { "compilerOptions": { "target": "esnext", "module": "esnext", "moduleResolution": "node", "allowJs": true, "checkJs": false, "strict": true, "isolatedModules": true, "esModuleInterop": true, "skipLibCheck": true, "baseUrl": "./", "noImplicitAny": true, "noImplicitOverride": true, "strictNullChecks": true, "useUnknownInCatchVariables": true, "resolveJsonModule": false, "types": ["node"], "experimentalDecorators": true, "noErrorTruncation": true, "composite": true }, "include": [ "." ], "exclude": [ "./node_modules", "./build" ] }y otro
// tsconfig.typeCheckJs.json { "compilerOptions": { "target": "esnext", "module": "esnext", "moduleResolution": "node", "allowJs": true, "checkJs": true, "noEmit": true, "noEmitHelpers": true, "strict": true, "isolatedModules": true, "esModuleInterop": true, "skipLibCheck": true, "baseUrl": "./", "noImplicitAny": false, "noImplicitOverride": true, "strictNullChecks": true, "useUnknownInCatchVariables": true, "resolveJsonModule": false, "types": ["node"], "experimentalDecorators": true, "noErrorTruncation": true, "composite": true }, "include": [ "." ], "exclude": [ "./node_modules", "./build" ] }luego, debe actualizar sus scripts a algo como esto:
// package.json scripts: { "build": "./node_modules/.bin/tsc --project tsconfig.typeCheckJs.json && ./node_modules/.bin/tsc" }Espero que quede claro, de lo contrario no dudes en pedir aclaraciones.