Tengo el siguiente código:
type myTuple = [string, (value:string) => void] function setState(v: string) : myTuple { let myState:string = v; return [ myState, (a) => myState = a ] } const [val,setVal] = setState('value1'); console.log(val); setVal('Change'); console.log(val); Espero que val se cambie a "Change" , pero en su lugar permanece "value1" después del segundo console.log .
Sin embargo, encontré una manera de hacerlo funcionar:
type myTuple = [() => string, (value:string) => void ] function setState(v: string) : myTuple { let myState:string = v; return [ () => myState, (a) => myState = a ] } const [val,setVal] = setState('value1'); console.log(val()); setVal('AAP'); console.log(val());¿Por qué funciona esto?