Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

143
Vistas
typescript use preset value for property value in array object error?

I have this simple typescript code for react

type fruitCode = 'apple' | 'banana'

interface fruitList {
  name: fruitCode
}

const [arr, setArr] = useState<fruitList[] | []>([])

useEffect(() => {
  const arrList = [{
    name: 'apple'
  }, {
    name: 'banana'
  }];

  //error?
  setArr(arrList)
}, [])

demo https://codesandbox.io/s/react-typescript-forked-gi6fw?file=/src/App.tsx:103-391

how can I restrict my property value is either 'apple' and 'banana'?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Typescript cannot infer the type for arrList so set it directly

const arrList: fruitList[] = [
  // ...
]

I would also remove | [] from the state type definition as it is redundant; an empty array still satisfies the <fruitList[]> requirement.

const [arr, setArr] = useState<fruitList[]>([])

Finally, your interfaces and types should not be part of the component. Move them above App

type fruitCode = "apple" | "banana";
interface fruitList {
  name: fruitCode;
}

export default function App() {
  // ...
}

You'll notice there are no warnings about your useEffect dependencies after this.

Edit React Typescript (forked)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda