Explicar sobre noImplicitAny en TypeScript

TypeScript es un lenguaje compilado, fuertemente tipado y orientado a objetos desarrollado por Microsoft Corporation. Es un superconjunto de javascript, lo que significa que cada código JavaScript sostenible es esencialmente un código TypeScript válido (es decir, JavaScript es TypeScript con algunas características adicionales). TypeScript está construido sobre JavaScript. Lo que podemos hacer es escribir código TypeScript y compilarlo en JavaScript usando TypeScript Compiler. Migrar una base de código JavaScript válida a TypeScript no es muy difícil porque un código JavaScript sintácticamente correcto no es más que código TypeScript.

Como requisito previo para comprender noImplicitAny , debemos aprender sobre cualquier tipo de datos en TypeScript.

¿Qué es cualquier tipo? 

Realmente se debe usar cualquier tipo cuando en realidad no sabemos qué tipo se nos devolverá. Por ejemplo, cuando usamos cualquier argumento de función que devuelve cualquier cosa sin una definición de tipo, esto es aplicable incluso cuando está escrito en JavaScript simple. Cualquier tipo es un tipo especial en TypeScript, podemos usarlo cuando queremos desactivar efectivamente la verificación de tipos de TypeScript. A menudo necesitamos esto porque a veces necesitamos ignorar el error de tipo dado por TypeScript. Es como un superconjunto de todos los tipos integrados y definidos por el usuario en Typescript.

Si tenemos una declaración let (una declaración let nos permite reasignar un valor mientras que una const no lo hace) y un texto de identificador de variable y no le agregamos un tipo:

let test;

Aquí let test se transforma en let test: any en nuestro IDE, por lo que TypeScript en realidad nos está infiriendo el tipo en lugar de declararlo. Sin embargo, incluso después de que asignemos una string a la variable test, será completamente correcto, pero aún así, nuestro IDE lo mostrará como cualquier tipo. Por lo tanto, Typescript no cambia el tipo de datos de una variable con ningún tipo, se establece como predeterminado.

let test;
test = "GeeksForGeeks";

¿Qué es noImplicitAny?

El noImplicitAny es una configuración del compilador o una opción del compilador que podemos modificar en TypeScript. La función principal de esta configuración es que, al usarla, podemos transformar TypeScript de un lenguaje de tipo opcional a uno de tipo estricto. Si no especificamos un tipo y TypeScript no puede inferirlo automáticamente, el compilador usará cualquier tipo de manera predeterminada. Esto puede ser un problema grave en algunos casos porque tener cualquier tipo en una variable le dice al compilador «no escribas, comprueba esto».  

La existencia de la opción del compilador noImplicitAny hará que los casos en los que se deduzca any para un tipo se conviertan en errores. Esto nos obligará a arreglar las cosas de tal manera que el tipo se pueda inferir correctamente o al menos declarar explícitamente el tipo como cualquier tipo. 

Ejemplo:

HTML

<!DOCTYPE html>
<html>
 
<body>
    <pre>
        Here we haven't explicitly declared the variable.
        So a error will be returned.
    </pre>
 
    <script type="text/javascript">
        function printMe(g) {
            console.log(g);
        }
        printMe(g);
    </script>
</body>
 
</html>

Cuando hemos configurado noImplicitAny en las opciones del compilador, el código anterior arrojará un error porque no hemos declarado explícitamente la variable g

Producción:

Ejemplo:

HTML

<!DOCTYPE html>
<html>
 
<body>
    <pre>
        Here we have explicitly declared the variable.
        So no error will be returned.
    </pre>
 
    <script type="text/javascript">
        let g;
        function printMe(g) {
            console.log(g);
        }
        printMe(g);
    </script>
</body>
 
</html>

Aquí hemos declarado explícitamente la variable g, por lo que no se devolverá ningún error.

Producción:

¿Cómo usar noImplicitAny?

Para usar noImplicitAny como opción del compilador, debemos configurar compilerOptions en tsconfig.json. Necesitamos establecer noImplicitAny como verdadero. Por lo tanto, al tener noImplicitAny establecido en verdadero, nos aseguraremos de que nunca permitamos accidentalmente que el compilador pierda la verificación de tipos al inferir cualquier tipo. Después de hacer esto

{
  "compilerOptions": {
    "noImplicitAny": true
  }
}

Hay otra forma de habilitar noImplicitAny en las opciones del compilador usando la opción estricta . Usar noImplicitAny es una buena práctica para cualquier desarrollador, nadie querrá agregar tipos de datos en todas partes al migrar de JavaScript a la base de código TypeScript. Entonces, después de usar noImplicitAny, tenemos que agregar explícitamente el tipo en el momento de la primera secuencia de comandos solo para que no se convierta en un problema más adelante. 

{
  "compilerOptions": {
    "strict": true
  }
}

Publicación traducida automáticamente

Artículo escrito por priyanshuchatterjee01 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *