Si je déclare les types suivants :
export type Type1 = { id: string } | { id: number };
export type Type2 = { id: string } | { id: number };
Pourquoi est-ce que j'obtiens une erreur lorsque je l'utilise de la manière suivante :
function displayItem(item: Type1) {
loadItem({ id: item.id }); // error is indicated here
}
function loadItem(item: Type2) {}
D'après ce que j'ai compris https://www.typescriptlang.org/docs/handbook/type-compatibility.html est qu'ils devraient être équivalents car ils sont structurellement les mêmes.
Reproduction plus simple à la lumière des réponses (le deuxième type n'est pas nécessaire) :
export type Type1 = { id: string } | { id: number };
function displayItem(item: Type1) {
loadItem({ id: item.id }); // error is indicated here
}
function loadItem(item: Type1) {}