J'ai un exemple de fonction Promise comme ci-dessous. En cas de succès, je retourne un number
et en cas de false, je retourne string
. Le compilateur se plaint de spécifier un type de type générique à la promesse. Dans ce cas, quel type dois-je spécifier? Est-ce que je dois spécifier comme Promise<number>
ou Promise<number | string>
?
function test(arg: string): Promise {
return new Promise((resolve, reject) => {
if (arg === "a") {
resolve(1);
} else {
reject("1");
}
});
}
Le type générique de la promesse doit correspondre au type de retour sans erreur de la fonction. L'erreur est implicitement de type any
et n'est pas spécifiée dans le type générique Promise.
Donc par exemple:
function test(arg: string): Promise<number> {
return new Promise<number>((resolve, reject) => {
if (arg === "a") {
resolve(1);
} else {
reject("1");
}
});
}