Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Generics vs tipagem

Eu não entendi qual seria a diferença de fazer desses 2 seguintes modos:

const [colaboradores, setColaboradores] = useState([]: IColaborador)
const [colaboradores, setColaboradores] = useState<IColaborador>([])
1 resposta
solução!

Entendo a confusão. Vamos analisar as duas declarações para entender a diferença:

  1. const [colaboradores, setColaboradores] = useState([]: IColaborador)

Nesta declaração, parece que você está tentando inicializar o estado com um array vazio do tipo IColaborador. No entanto, a sintaxe está um pouco incorreta. A maneira correta de fazer isso seria:

const [colaboradores, setColaboradores] = useState<IColaborador[]>([]);

Essa declaração está correta e significa que você está inicializando o estado colaboradores como um array vazio que conterá elementos do tipo IColaborador.

  1. const [colaboradores, setColaboradores] = useState<IColaborador>([])

Nesta declaração, você está tentando inicializar o estado colaboradores com um array vazio do tipo IColaborador. No entanto, o tipo IColaborador não é um array, é um tipo que representa um colaborador individual. Portanto, esta declaração não está correta para representar um array de colaboradores.

A maneira correta seria a que mencionei na explicação do primeiro exemplo:

const [colaboradores, setColaboradores] = useState<IColaborador[]>([]);

Em resumo, a diferença entre as duas declarações está na forma como você está tipando o estado. A primeira forma é a correta para representar um array de colaboradores, enquanto a segunda forma tenta tipar um array vazio como um único IColaborador, o que não é apropriado.