No asignable
Type 'number' is not assignable to type 'string'.Las palabras del propio compilador. Sin traducir — es la cadena que pegaste en el buscador.
El error más común de TypeScript. Un valor de un tipo se puso donde se requería otro, y ambos no son compatibles en esa dirección.
Reproducción
const value: string = 1
La compilación afirma que esto emite exactamente este código.
Por qué lo dice el compilador
La asignabilidad tiene dirección, y el mensaje siempre se lee origen-luego-destino. Ese orden es todo el diagnóstico: «`number` no es asignable a `string`» no dice nada sobre si funcionaría al revés. Cuando el mensaje sorprende suele ser porque se lee como una afirmación de igualdad — no lo es, es una afirmación sobre sustitución en un sentido, y de esa distinción se sigue la mitad de TypeScript.
Arreglos
- 01
const value: string = String(1)
Convierte el valor, si lo que querías era una conversión. Es el arreglo honesto y el que sobrevive a una revisión.
- 02
const value: string | number = 1
O amplía el destino, si de verdad admite ambos. Una unión dice que la variable realmente puede ser cualquiera de los dos, lo cual es una afirmación distinta de un cast y mucho más segura.
Conclusión
Lee el mensaje como una flecha, no como un signo de igual. Origen a la izquierda, destino a la derecha, y la pregunta siempre es si el izquierdo puede sustituir al derecho.