Recientemente comencé a usar TypeScript con Expo. He hecho todas las integraciones de linter / formateador typescript-eslint
para poder detectar la mayoría de los errores durante la codificación. Para verificar si el código se compila, ejecuto de npx tsc
vez en cuando y lo arreglo en consecuencia.
Una cosa que aún no he entendido completamente es por qué mi aplicación se compila correctamente incluso cuando hay numerosos errores de compilación. Espero (y prefiero) ver un error de pantalla roja para cada error de compilación en lugar de que la aplicación se compile correctamente y lo descubro más tarde. Por ejemplo,
function square<T>(x: T): T {
console.log(x.length); // error TS2339: Property 'length' does not exist on type 'T'.
return x * x;
}
es un error típico de TypeScript que (¿creo?) se puede verificar fácilmente en tiempo de compilación. Quiero que resulte en un gran error de pantalla roja y que la compilación falle.
Soy bastante nuevo en TypeScript, por lo que es posible que me falte algo muy importante. ¿Qué es exactamente lo que está causando esta indulgencia? ¿Hay alguna forma de aplicar controles más estrictos?
npx tsc
pero quiero obtener una pantalla roja para cada error de TypeScript, al igual que lo hago para los errores normales de JS comoconst n = 23; n.reverse();
ese da como resultado una pantalla roja con el mensaje "n.reverse no es una función". 'n.reverse ()', 'n.reverse' no está definido) "Respuestas:
Lo primero que hay que entender es que Typescript es un superconjunto de Javascript, y en este caso no se verifica el tipo durante la compilación.
Esencialmente, lo que sucede es que Babel simplemente elimina el mecanografiado y lo convierte a Javascript, que luego se compila en los paquetes js.
Puede echar un vistazo a la primera línea de los siguientes documentos de Babel, así como a las advertencias: https://babeljs.io/docs/en/next/babel-plugin-transform-typescript
Lo que sugeriría es extender su comando de compilación para incluir primero,
tsc
o más bien, la compilación de Typecript, connoEmit
set to true en su tsconfig.Actualización : Encontré otra instancia donde esto se aplica recientemente al agregar
jest
ytypescript
a un proyecto. En la parte inferior de los documentos de Jest, en realidad dicen lo mismo:https://jestjs.io/docs/en/getting-started#using-typescript
fuente