¿Cómo puedo escribir esta función genérica con una función de flecha?
function simpleState<T>(initial: T): [() => T, (v: T) => void] { let value: T = initial; return [ () => value, (v: T) => { value = v; } ] };const simpleState = <T>(initial: T): [() => T, (v: T) => void] => { // same function body as before } Dado que etiquetó react-native, tenga en cuenta que en un archivo .tsx , esto probablemente no funcionará, ya que la <T> se analizará como una etiqueta JSX. Puede ponerlo en un archivo .ts e importarlo a un archivo .tsx , o usar una de las siguientes soluciones para que no se interprete como un elemento JSX.
coma final:
<T,>(initial: T): // etcExtender desde desconocido:
<T extends unknown>(initial: T): // etcconst simpleState2 = <T>(initial: T): [() => T, (v: T) => void] => { let value: T = initial; return [ () => value, (v: T) => { value = v; }, ]; }