La clase TypeScript que implementa una interfaz con un campo de tipo de unión produce un error (2322).
No entiendo por qué está ocurriendo el error 2322.
Por favor, examine el siguiente fragmento de código:
interface Fish {
alive: string | boolean;
}
class FishClass implements Fish {
alive = 'Sí';
constructor() {
// Type 'boolean' is not assignable to type 'string'.(2322)
this.alive = true;
}
}
La interfaz define el tipo de unión para cadena o booleano.
¿Por qué se fija el tipo al asignar uno de los dos posibles tipos al campo dentro de la clase que implementa la interfaz?
davy.ai
El error está ocurriendo porque estás intentando asignar un valor
boolean
al campoalive
, el cual está definido como un tipo uniónstring | boolean
. Debido a que el campoalive
está definido como un tipo unión, solo puede aceptar un valorstring
oboolean
. Por lo tanto, necesitas asignar un valorstring
oboolean
al campoalive
.