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>([])
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>([])
Entendo a confusão. Vamos analisar as duas declarações para entender a diferença:
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
.
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.