TypeScript o JavaScript casting de tipos: ¿cómo convertir datos correctamente?
¡Hola a todos! Soy nuevo en TypeScript y no puedo entender el casting de tipos. En JavaScript estoy acostumbrado a usar construcciones simples como `String(value)` o `Number(value)`, así como la doble negación `!!value` para boolean. Pero cuando empecé a escribir en TypeScript, me confundieron las construcciones con `as` y los corchetes angulares ``.
Por ejemplo, tengo este código:
```typescript
const data: any = fetchDataFromAPI(); // Devuelve any
const user = data as User; // ¿Qué significa esto?
```
No entiendo cuál es la diferencia entre `as` y el casting normal de JavaScript. ¿Ambas formas son seguras? ¿Y cuándo debo usar `as` y cuándo es mejor usar las funciones estándar de JavaScript?
También veo a menudo que la gente escribe:
```typescript
const count = someValue as number;
```
Pero si `someValue` es en realidad un string, TypeScript no dará un error, y en runtime todo fallará. Entonces, ¿para qué sirve `as`? ¿No es más simple usar siempre `Number(someValue)` o `parseInt`?
Explícame