如何静态检查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
相关产品推荐
相关产品推荐

