Qué significa Type X is not assignable to type Y y cómo solucionarlo
Referencia del error
Type X is not assignable to type Y
Lenguaje
Severidad
MediaCuándo ocurre
Este error de compilación de TypeScript (TS2322) se reporta cuando intentas asignar un valor de un tipo a una variable, parámetro o tipo de retorno que espera un tipo diferente e incompatible.
Posibles soluciones
Alinea el tipo del valor con el tipo del destino. Cambia la anotación de tipo de la variable, actualiza el tipo de retorno de la función, o convierte el valor. Evita usar aserciones de tipo (as) para silenciar este error: corrige los tipos en su lugar. Usa tipos unión (string | null) cuando un valor puede legítimamente ser uno de varios tipos.
Errores relacionados
Más detalles
Este error de compilación de TypeScript (TS2322) se reporta cuando intentas asignar un valor de un tipo a una variable, parámetro o tipo de retorno que espera un tipo diferente e incompatible. El sistema de tipos estructural de TypeScript verifica que la forma del valor coincida con lo esperado.
Por qué ocurre
- •Asignar el valor de retorno de una función a una variable declarada con un tipo incompatible.
- •Pasar un argumento del tipo incorrecto a un parámetro de función.
- •Retornar un valor desde una función cuyo tipo de retorno declarado no coincide.
- •Reducir un tipo unión incorrectamente, dejando una rama de tipo que no satisface el tipo objetivo.
Posibles soluciones
Alinea el tipo del valor con el tipo del destino. Cambia la anotación de tipo de la variable, actualiza el tipo de retorno de la función, o convierte el valor. Evita usar aserciones de tipo (as) para silenciar este error: corrige los tipos en su lugar. Usa tipos unión (string | null) cuando un valor puede legítimamente ser uno de varios tipos.
Ejemplos
Código que causa el error
function greet(name: string): string {
return "Hello, " + name;
}
const result: number = greet("Alice");Error en la terminal
error TS2322: Type 'string' is not assignable to type 'number'.
Código corregido
function greet(name: string): string {
return "Hello, " + name;
}
const result: string = greet("Alice");
console.log(result); // Hello, AlicePractica en inglés
¿Cómo le explicarías un Type X is not assignable to type Y a un compañero dev? Elige la frase correcta:
"I hit an error...
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis