Búsqueda de sitios web

El argumento de función tipado de TypeScript acepta cualquiera


Aquí hay un fragmento de TypeScript que se compila perfectamente (usando 1.5.3).

function alertNumber(a: number) {
    alert(a + 1);
}
var x:any = "string";
alertNumber(x);

¿Cómo es posible que una función que solicita un parámetro de un cierto tipo pueda ser llamada con un argumento de tipo any?

Respuesta #1

Es porque optas por no realizar la verificación de tipos cuando usas tipos any.

[A veces] queremos optar por no realizar la verificación de tipos y dejar que los valores pasen a través de las verificaciones en tiempo de compilación. Para hacerlo, los etiquetamos con el tipo 'any'. - Manual

Para evitar problemas con any:

  1. Usa la opción del compilador --noImplicitAny (o desactiva Permitir tipos any implícitos en Visual Studio).
  2. No uses tipos explícitos any excepto cuando sea necesario (Ej. var x: any)

Artículos relacionados