Tengo esta declaración de valor:
const [value, setValue] = useState<PaymentOption | null>(null);
Y dentro de un componente, tengo esta función OnChange, que llama a setValue:
onChange={(event, newValue, reason) => { setValue(newValue); const { onChange } = props; if (onChange) onChange(event, newValue, reason); }}Pero sigo recibiendo este error (al pasar el mouse sobre la llamada setValue y durante la construcción):
TS2345: Argument of type 'string | PaymentOption | (string | PaymentOption)[] | null' is not assignable to parameter of type 'SetStateAction<PaymentOption | null>'. Type 'string' is not assignable to type 'SetStateAction<PaymentOption | null>'.
He intentado establecer el tipo en el valor nuevo, es decir,
onChange={(event, newValue: PaymentOption | null, reason) => {
Pero luego me sale este error:
Type 'string | PaymentOption | (string | PaymentOption)[] | null' is not assignable to type 'PaymentOption | null'.
Y si trato de cambiar el setValue a esto:
const [value, setValue] = useState<string | PaymentOption | (string | PaymentOption)[] | null>(null);
Y el onChange para que coincida:
onChange={(event, newValue: string | PaymentOption | (string | PaymentOption)[] | null, reason) => {
Luego, los errores desaparecen aquí, pero luego todos mis value.vars dicen:
TS2339: Property 'label' does not exist on type 'string | PaymentOption | (string | PaymentOption)[]'. Property 'label' does not exist on type 'string'.
¿Alguien tiene idea de lo que está pasando? ¿Incluso alguna pista?