Lorsque vous utilisez MyInterfaceOne[] | MyInterfaceTwo[]
J'obtiens une erreur Typescript à un autre endroit de mon code, ce qui n'a aucun sens pour moi.
myInterfaces = funcWithAboveSignature()
return myInterfaces.reduce(async (acc, interfaceType) => {
await acc;
if (interfaceType.prop) {
return await someAsyncFunc(interfaceType);
} else {
return await someOtherAsyncFunc(interfaceType);
}
}, Promise.resolve());
L'erreur dit :
Argument of type '(acc: MyInterfaceOne, raw: MyInterfaceOne) => Promise<void>' is not assignable to parameter of type '(previousValue: MyInterfaceOne, currentValue: MyInterfaceOne, currentIndex: number, array: MyInterfaceOne[]) => MyInterfaceOne'.
Mais en changeant la signature de la fonction de MyInterfaceOne[] | MyInterfaceTwo[]
a (MyInterfaceOne|MyInterfaceTwo)[]
cela fonctionne.
Quelqu'un peut-il m'expliquer la différence entre les deux ?