javascript - 为什么 Promise 泛型类型只声明成功解析类型?
问题描述
假设我有以下代码:
function fn(): Promise<string> {
return new Promise((resolve, reject) => {
let randomBit = (Math.random() * 10) % 2 === 0;
if (randomBit) {
resolve("Resolve");
} else {
reject(0);
}
});
}
上述返回有效 Promise 的方法被正确键入为Promise<string>
. 我了解内部类型声明了在成功解析的情况下返回的类型。但是,拒绝的回报呢?在我的示例中,拒绝将解析为number
. 不应该,返回签名fn()
类似于
Promise<string, number>
?
或者,更一般地说,Promise 不应该为两种可能的结果声明泛型类型,比如
Promise<TSuccess, TError>
?
我觉得我错过了什么。
解决方案
推荐阅读
- reactjs - How to handle API errors in a connected react component?
- php - Adding dynamic custom tab for WooCommerce products
- angular - 使用锚点单击显示 MatCalendar
- spring-boot - springboot 不支持同组名的多个 Docket
- git - Git - 恢复文件
- javascript - 输入中的Angularjs ng-model不会更新控制器中的值
- android - 如何将所有数据从 SQLite 发送到 Android 中的服务器
- css - 为什么我的 SVG 文本在 Microsoft Edge 中没有垂直居中?
- apache-spark - 如何使用 terraform 在 EMR 创建中启动 Spark 作业
- excel - 如何从图表中访问单个条形的高度并进行更改?