You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何静态检查TypeScript Promise是否被resolve/reject穷尽覆盖?

问题:静态检查Promise的resolve/reject全覆盖及数值类型扩展

我希望静态检查Promise是否一定会被resolve或reject,示例代码如下:

function foo(x: number) {
  return new Promise((resolve, reject) => {
    if (x > 30) { resolve(x+7);       }
    if (x < 20) { reject("ouch !!!"); }
  });
}

async function main() {
  try { const y = await(foo(60)); console.log(y); }
  catch (e) {                     console.log(e); }
}

main();

能否将枚举覆盖检查的方法扩展到number类型的覆盖检查?

补充说明

我至少希望能指定Promise的返回类型,使undefined成为无效值。类似如下示例:

$ cat example.ts                          
function bar(x: number): number { if (x > 30) { return x-2; }}
$ npx tsc --strict --target es2020 example.ts | grep error
example.ts(1,26): error TS2366: Function lacks ending return statement and return type does not include 'undefined'.

内容的提问来源于stack exchange,提问作者OrenIshShalom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:12:40