【发布时间】:2016-02-29 23:46:14
【问题描述】:
对于 TypeScript 1.6 和本机 es6 Promises,每当我使用具有两种不同返回类型的 Promise.all([]) 时,都会出现错误。例如:
let onePromise:Promise<string[]> = getOne();
let twoPromise:Promise<MyObject> = getTwo();
Promise.all([onePromise, twoPromise])
.then((values:[string[], MyObject]) => {
let one:string[] = values[0];
let two:MyObject = values[1];
// do stuff
});
在该示例中,我在 TypeScript 编译器 error TS2453: The type argument for type parameter 'R' cannot be inferred from the usage. Consider specifying the type arguments explicitly. Type argument candidate 'string[]' is not a valid type argument because it is not a supertype of candidate 'MyObject'. Property 'length' is missing in type 'MyObject'. 的 Promise.all 行上收到错误
我实际上还有另一个例子,错误的第二句和第三句不同,但第一句是相同的。所以基本上我想知道“明确指定类型参数”的语法是什么。我似乎无法弄清楚。代码运行良好,但我想摆脱这个编译器警告。
【问题讨论】:
标签: typescript promise es6-promise typescript1.6