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:
- Usa la opción del compilador
--noImplicitAny(o desactivaPermitir tipos any implícitosen Visual Studio). - No uses tipos explícitos
anyexcepto cuando sea necesario (Ej.var x: any)