Tengo un tipo definido así:
type FieldToAction = { [key in ApiActions]: ((field: Field) => void) | ((field: Field, fieldValue: FieldValue) => void) }
donde FieldValue
es una unión de tipos:
type FieldValue = string | string[] | AssigneeValue | PriorityValue
Tengo un objeto variable donde luego declaro las funciones establecidas por los tipos anteriores:
const fieldToAction: FieldToAction = { . . . "SET_DESCRIPTION": (field: Field, fieldValue: string) => field.setDescription(fieldValue), "SET_LABELS_VALUE": (field: Field, fieldValue: string[]) => field.setValue(fieldValue) };
Esto produce un error donde los valores en el objeto no son del tipo FieldToAction
, entiendo por qué, ya que ahora estoy restringiendo el parámetro para que sea una string
o una string[]
.
Mi pregunta es: ¿hay alguna forma de seguir usando el tipo de unión de tipos y restringir el valor en el parámetro?
Gracias