Tapuscrit promesse de type générique

J'ai un exemple de Promesse de fonction comme ci-dessous. Sur le succès-je retourner un number et sur de fausses-je retourner string. Le compilateur se plaint de spécifier une sorte de type générique de la promesse. Dans ce cas, quel type dois-je le préciser? Dois-je 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");
        }
    });
}
Avez-vous essayé Promise<number|string>?
Il ne se plaint pas à faire ça. Est-ce la bonne chose à faire? Est-il ok pour spécifier les types de résoudre et de les rejeter?

OriginalL'auteur VJAI | 2016-12-10