Me gustaría usar TypeScript en el futuro, pero por ahora, he elegido instalar TypeScript en Create React App. (Más tarde, regresaré y agregaré tipos)
Por lo tanto, me gustaría deshabilitar todos los controles de tipo.
En este momento, cuando hago algo como esto:
<PlaceSearchBar
placeSearchChanged={this.placeSearchChanged}
/>
class PlaceSearchBar extends React.Component {
...
}
me sale un error:
Type error: Type '{ placeSearchChanged: (place: any) => void; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<PlaceSearchBar> & Readonly<{ children?: ReactNode; }> & Readonly<{}>'.
Property 'placeSearchChanged' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<PlaceSearchBar> & Readonly<{ children?: ReactNode; }> & Readonly<{}>'. TS2322
Aparentemente necesito declarar tipos en React.Component<placeSearchChanged:function>
o algo por el estilo.
Creo que es molesto y me gustaría desactivar todas las comprobaciones en mi tsconfig.json
.
¿Cómo puedo deshabilitar todas las comprobaciones (pero aún así mantener instalado TypeScript, solo para el futuro)?
Este es mi tsconfig.json actual:
{
"compilerOptions": {
"target": "es6",
"lib": [
"dom",
"dom.iterable",
"esnext",
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "preserve",
"noImplicitAny": false,
},
"include": [
"src"
]
}
Karol Majewski
Agrega esto a tu tsconfig.json
:
{
"compilerOptions": {
...
"checkJs": false
...
}
}
y adherirse a .js
/.jsx
archivos por ahora. Utilizar el .ts
/.tsx
extensión solo cuando esté listo para usar tipos.
Si prefiere suprimir los errores línea por línea, puede utilizar un // @ts-ignore
comentario.
-
¿No debería tener allowJs también?
– Frasco de estus
8 de febrero de 2019 a las 12:20
-
checkJs
es falso por defecto: typescriptlang.org/tsconfig#checkJs– James Gentes
27 de marzo de 2021 a las 15:51
-
el comentario
// @ts-ignore
está trabajando. Asegúrese de agregar este comentario justo antes de la línea que produce el error.–Ashique Razak
29 sep 2021 a las 17:38
-
Esto no funciona en caso de que la aplicación tenga todos los archivos TS, no JS
– Pardeep Jain
20 de diciembre de 2022 a las 8:08
gobien
Puede permitir que la compilación de CRA se realice incluso en presencia de errores mecanografiados.
Simplemente configure la variable de entorno TSC_COMPILE_ON_ERROR=true
Controlar Documentación CRA para obtener información más detallada
-
La compilación se ejecutará, pero los errores saturarán la consola. Aconsejaría usar
exclude
directiva en eltsconfig.json
– avalancha1
23 mayo 2021 a las 19:03
-
Creo que especificar en “excluir” excluye esos archivos en el paquete final y no estarán disponibles para usarlos en otros módulos. Si los archivos son solo archivos de definición de tipo (.d.ts), entonces está bien
– Naga Kiran
6 oct 2021 a las 19:04
-
Esta es la única respuesta aquí que funcionó para mí.
– derpedy-doo
26 de julio de 2022 a las 17:16
puedes usar un // @ts-nocheck
comentario en la parte superior de un archivo para deshabilitar la verificación de tipos para ese archivo.
más @ aquí
nologin
Typescript sin tipos es Javascript. Comience su proyecto sin TypeScript y conviértalo cuando esté listo para hacerlo. Empezando con <any>
no es una buena práctica y no tiene sentido en mi opinión.
Estoy de acuerdo con nologin, no tiene sentido hacer eso, sin embargo, si realmente quieres, hay algunas formas en las que puedo pensar, aquí hay un par:
Deshabilitar por archivo
añadir este comentario en la parte superior del archivo /* tslint:disable */
Excluye tu carpeta src
Excluya sus carpetas de código de tslint.json (es posible que también deba hacerlo en tsconfig.json)
{
// some linting options
linterOptions: {
exclude: ['src/**','components/**'],
}
}
Vacíe tslint.json y tsconfig
simplemente reemplace sus archivos tslint.json y tsconfig.json con un objeto vacío
-
Solo la segunda solución funcionará. TSLint no es el compilador de TypeScript, y un tsconfig vacío solo usará la configuración predeterminada.
– coolreader18
6 de febrero de 2019 a las 14:16
-
Sí, la segunda solución es omitir el compilador, pero es probable que TIMEX también haya instalado algunas pelusas que deben omitirse y que podrían ser necesarias. Hace algún tiempo, los archivos de configuración vacíos funcionaban, podrían haberse revertido (afortunadamente)
– Dave
8 de febrero de 2019 a las 10:10
-
la desactivación por archivo no funcionó. el ts-ignore funcionó para mí
– Comprobación de lápiz
8 de enero a las 4:26
Sayed Hussainullah Sadat
Estaba enfrentando el mismo problema, traté de modificar el tsconfig.json
archivo de la siguiente manera.
Antes:
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es2017",
"module": "es2020",
"lib": [
"es2020",
"dom"
]
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true
}
}
Después
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es2017",
"module": "es2020",
"lib": [
"es2020",
"dom"
]
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": false,
"strictInputAccessModifiers": true,
"strictTemplates": false
}
}
cambiando "strictInjectionParameters": false,
y "strictTemplates": false
trabajó para mi.
-
Solo la segunda solución funcionará. TSLint no es el compilador de TypeScript, y un tsconfig vacío solo usará la configuración predeterminada.
– coolreader18
6 de febrero de 2019 a las 14:16
-
Sí, la segunda solución es omitir el compilador, pero es probable que TIMEX también haya instalado algunas pelusas que deben omitirse y que podrían ser necesarias. Hace algún tiempo, los archivos de configuración vacíos funcionaban, podrían haberse revertido (afortunadamente)
– Dave
8 de febrero de 2019 a las 10:10
-
la desactivación por archivo no funcionó. el ts-ignore funcionó para mí
– Comprobación de lápiz
8 de enero a las 4:26
Harshit Juneja
La USP de Typescript es la verificación de tipos en tiempo de compilación. En última instancia, se compila en javascript. Empezar sin texto mecanografiado. Siempre puede incluirlo en su proyecto cuando lo desee con alguna refactorización.
https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html
Posible duplicado de TypeScript: ¿es posible deshabilitar la verificación de tipos?
– Cristóbal
23 de noviembre de 2019 a las 19:56
Esta pregunta se confunde si desea usar archivos .js y no usar ningún tipo o si desea usar archivos .ts e introducir tipos lentamente a medida que avanza. Si es lo último, entonces su mejor opción es una de las respuestas menos votadas con
TSC_COMPILE_ON_ERROR
variable de entorno– Michael Gacka
17 oct 2020 a las 16:08