我有一个示例Promise函数,如下所示.成功时我得number分,失败时我得string分.编译器抱怨要为promise指定某种泛型类型.在这种情况下,我必须指定哪种类型?我需要指定Promise<number>Promise<number | string>吗?

function test(arg: string): Promise {
    return new Promise((resolve, reject) => {
        if (arg === "a") {
            resolve(1);
        } else {
            reject("1");
        }
    });
}

推荐答案

promise 的泛型类型应与函数的非错误返回类型相对应.错误隐式地属于类型any,并且未在Promise泛型类型中指定.

例如:

function test(arg: string): Promise<number> {
    return new Promise<number>((resolve, reject) => {
        if (arg === "a") {
            resolve(1);
        } else {
            reject("1");
        }
    });
}

Typescript相关问答推荐

如何使用TypScript和react-hook-form在Next.js 14中创建通用表单组件?

如何正确修复TypScript 4.7到4.8升级中的TS 2345编译错误

有没有可能使用redux工具包的中间件同时监听状态的变化和操作

如何调整对象 struct 复杂的脚本函数的泛型类型?

AngularJS服务不会解析传入的Json响应到管道中的模型

如何 bootstrap TS编译器为类型化属性`T`推断正确的类型?

在排版修饰器中推断方法响应类型

确保对象列表在编译时在类型脚本中具有唯一键

如何在Angular 服务中制作同步方法?

自动通用回调

为什么发送空字段?

如何在打字角react 式中补齐表格组

必需的输入()参数仍然发出&没有初始值设定项&q;错误

是否可以定义引用另一行中的类型参数的类型?

使用RXJS获取数据的3种不同REST API

可以用任意类型实例化,该类型可能与

我的类型谓词函数不能像我预期的那样工作.需要帮助了解原因

如何在TypeScript类成员函数中使用筛选后的keyof this?

带动态键的 TS 功能

覆盖高阶组件中的 prop 时的泛型推理