TS2352
Conversión de tipo sospechosa
Conversion of type 'string' to type 'number' may be a mistake because neither type sufficiently overlaps with the other.Las palabras del propio compilador. Sin traducir — es la cadena que pegaste en el buscador.
Una aserción salta entre tipos no relacionados y no realizará la conversión en tiempo de ejecución que su escritura sugiere.
Reproducción
const count = '12' as number
La compilación afirma que esto emite exactamente este código.
Por qué lo dice el compilador
Las aserciones cambian la visión del comprobador, nunca el valor de JavaScript. Una cadena afirmada como `number` sigue siendo cadena en ejecución, así que TypeScript bloquea los saltos más claramente inconexos y pide explicitar la intención.
Arreglos
- 01
const count = Number('12')
Realiza una conversión real en ejecución cuando el valor deba convertirse en número.
- 02
const input: unknown = '12' if (typeof input !== 'string') { throw new Error('Expected text') } const count = Number(input)
Para datos externos, valida desde `unknown` antes de convertir.
Conclusión
`as` no es una conversión en tiempo de ejecución. Analiza o valida valores; reserva las aserciones para información que el compilador realmente no puede observar.
