Lingua-e
JavaScript

¿Qué significa Type X is not assignable to type Y?

← Errores

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.

Ejemplos

JavaScript

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ómo solucionarlo

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.

Código corregido

function greet(name: string): string {
  return "Hello, " + name;
}

const result: string = greet("Alice");
console.log(result);  // Hello, Alice

Errores relacionados

¿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