我该如何设定拒绝promise 的类型?假设我是:

const start = (): Promise<string> => {
   return new Promise((resolve, reject) => {
      if (someCondition) {
         resolve('correct!');
      } else {
         reject(-1);
      }
   });
}

假设我想用一个数字拒绝.但我无法设定类型;我可以把任何我想要的传递给这里的reject.

此外,在使用这个promise 时,如果我错误地使用拒绝响应类型,我希望有编译错误.

推荐答案

正如在this issue中所解释的,Promise对于兑现和拒绝的promise 没有不同的类型.reject accepts any argument这不影响promise 的类型.

目前,Promise不能再打得更好了.这是因为可以通过在thencatch中输入throwing来拒绝promise (这是拒绝现有promise 的更好方式),而这不能通过输入系统来处理;还有,TypeScript also doesn't have exception-specific types except never.

Typescript相关问答推荐

如何在ts中使用函数重载推断参数类型

如何在TypeScrip面向对象程序设计中用方法/属性有条件地扩展类

如何以Angular 形式显示验证错误消息

使用TypeScrip根据(可选)属性推断结果类型

TypeScrip原始字符串没有方法

在函数中打字推断记录的关键字

被推断为原始类型的交集的扩充类型的交集

我可以以这样一种方式键入对象,只允许它的键作为它的值吗?

是否可以从函数类型中创建简化的类型,go 掉参数中任何看起来像回调的内容,而保留其余的内容?

表单嵌套太深

在React中定义props 的不同方式.FunctionalComponent

使用泛型识别对象值类型

基于未定义属性的条件属性

如何使用TypeScrip在EXPO路由链路组件中使用动态路由?

是否可以在类型脚本中定义条件返回类型,而不在函数体中使用类型转换?

TaskListProps[]类型不可分配给TaskListProps类型

扩展对象的此内容(&Q;)

重写返回任何

来自枚举的<;复选框和组件列表

基于参数的 TS 返回类型