Anuncios

Bienvenidos sean a este post, hoy veremos otra opcion de la configuracion.

Anuncios

Esta opcion esta para indicar cuando no se especifica el tipo de una propiedad, argumento o devolucion de una funcion. Este sera el encargado de enviarnos una notificacion de error, ya veremos como es. Antes de pasar al ejemplo debemos crear el archivo tsconfig.json, para ello deben ejecutar el comando tsc –init, y en el archivo creado buscaremos la opcion strict para pasarla de true a false. Lo siguiente sera buscar la siguiente linea y descomentarla:

"noImplicitAny": true,
Anuncios

Con todo esto realizado vamos a analizar el siguiente ejemplo:

function functionPrueba(a) {}
Anuncios

Esta es una declaracion simple de una funcion si lo compilamos nos devolvera el siguiente error:

$ tsc
ejemploTS.ts:1:25 - error TS7006: Parameter 'a' implicitly has an 'any' type.

1 function functionPrueba(a) {}
                          ~


Found 1 error in ejemploTS.ts:1

$
Anuncios

Como no indicamos el tipo asumio que es any y por lo tanto nos lo notifica. Para evitar este error debemos modificarlo de la siguiente manera:

function functionPrueba(a: string) {}
Anuncios

Al asignarle un tipo este dejara de ser implicitamente any y por lo tanto ya no fallara. Veamos el siguiente ejemplo:

class clase {
        id;
        mostrar(a): void {
                console.log(a);
        };
}
Anuncios

Esta es una clase que posee una propiedad al cual no le pasamos ningun tipo y luego un metodo donde para el argumento hacemos lo mismo. Si lo compilamos y ejecutamos, su salida sera la siguiente:

$ tsc
ejemploTS.ts:2:2 - error TS7008: Member 'id' implicitly has an 'any' type.

2  id;
   ~~

ejemploTS.ts:3:10 - error TS7006: Parameter 'a' implicitly has an 'any' type.

3  mostrar(a): void {
           ~


Found 2 errors in the same file, starting at: ejemploTS.ts:2

$
Anuncios

Como era de esperarse nos devolvio dos errores porque tanto la propiedad como el argumento tiene implictamente al any. Vamos a tomarlo nuevamente y lo modificaremos de la siguiente manera:

class clase {
        id: number;
        mostrar(a: any): void {
                console.log(a);
        };
}
Anuncios

Al igual que en el caso anterior agregamos los tipos para cada una pero con una curiosidad, le asignamos any al argumento. Si lo compilan veran que no devolvera ningun error. Esto es asi porque el any no es implicito sino explicito, por lo tanto el compilador al ver que se lo asignamos lo toma como valido y nos deja compilarlo. Por lo tanto esto no deshabilita el any, aunque es absolutamente desaconsejable el uso, pero si a que no le asignemos un tipo a una variable y de forma implicita tome el tipo any.

Anuncios

En resumen, hoy hemos visto noImplicitAny, que es, para que sirve, como se habilita, como trabaja mediante unos ejemplos y mencionamos una particularidad. Espero les haya sido de utilidad en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50