这里的解决方案是明确指定第一个的值类型 Promise 通过添加实例化的对象 <number> 直接之后 new Promise 如图所示:
Promise
<number>
new Promise
/* Add <number> after new Promise */ return new Promise<number>((resolve, reject) => { let result:number = 10; resolve(result); }).then(result => { // first then console.log("Result: " + (typeof result)); // Result: number return result * 2; // }).then(result => { // second then return result * 2; }).then(result => { // third then return result * 2; });
这样做会通知Typescript第一个promises值类型,它允许推断链中后续promise的值类型。
这将反过来解决您的问题。更多信息 可以在此处找到打字稿中的泛型 。希望有所帮助!
检查以下行:
return new Promise((resolve, reject) :number => {
: number 意味着函数(或构造函数,它仍然没有意义)返回一个数字。这不是真的! new Promise 显然是返回一个Promise,你不必指定它。
: number
你想说的是,也许是Promise处理的类型是一个数字。你可以使用角括号来做到这一点:
return new Promise<number>((resolve, reject) => {