【发布时间】:2021-02-25 12:54:11
【问题描述】:
我有一个静态类型返回类型的常规承诺:
export const hasActiveSubscription = (whatEver: string): Promise<string> =>
new Promise((resolve, reject) => {
if (true){
resolve('imastring')
}
reject(new Error('nope'))
})
到目前为止一切顺利,但如果我添加 finally 块,它会将返回类型更改为 unknown 并且无法传递该字符串类型,例如
export const hasActiveSubscription = (whatEver: string): Promise<string> =>
new Promise((resolve, reject) => {
if (true){
resolve('imastring')
}
reject(new Error('nope'))
}).finally(console.info)
类型“Promise”不可分配给类型“Promise”。
类型“未知”不能分配给类型“字符串”。
如何在保留 finally 块的同时保留原始返回类型?
如果有帮助,我的实际代码有一个 setTimeout(以确保此函数不会花费太长时间返回),我想在 finally 上清除超时,而不是在 5 个不同位置清除超时。
【问题讨论】: