J'ai essayé de taper annoate une version de la reflectméthode de promesse d'ici - https://stackoverflow.com/a/31424853/1828637
function reflectPromise(p){
return p.then(data => ({
data,
resolved: true
}))
.catch(error => ({
error,
rejected: true
}));
}
Ce qu'il fait est prend une promesse, et renvoie une autre promesse quand il est résolu ou rejetée.
Les choses que je suis en train de faire avec pseudocode:
- Déclarez que
dataesttypeof ResolveValue(p) - Déclarez que
erroresttypeof RejectValue(p) - Déclarons que d' autres peuvent tester
const didReject = !!(await (reflectedPromise(somePromise)).rejected(ce que cela va faire pour les promesses résolues, ce qui revient{ data: xxx, resolved:true }) est à son tourundefinedàtrue. À l' heure actuelle , quand je fais!!blah.rejectedtapuscrit me ditProperty 'rejected' does not exist on type
Voilà ce que j'ai jusqu'à présent:
function reflectPromise(p: Promise<any>): Promise<
{ data: any, resolved: boolean, rejected: void } |
{ error: any, resolved: void, rejected: boolean }
> {
return p.then(data: any) => ({
data,
resolved: true
}))
.catch((error: any) => ({
error,
rejected: true
}));
}













