gpt4 book ai didi

Jquery Promises Chaining + Typescript = 类型不匹配

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:28 24 4
gpt4 key购买 nike

我在尝试使用 .then 链接 jQuery Promises 时在 TS 上遇到了一些困难

请参阅下面的代码:

function first(): JQueryPromise<string>
{
return $.when('1');
}

function test()
{
$.when()
.then(() =>
{
return first();
})
.then((value) =>
{
var str: string = value; //<--- type mismatch here.
});
}

Typescript 期望该值是 JQueryPromise 类型而不是“string”类型。

如果我给任何一个值,我就能让它发挥作用。

是否有不同的实现方式,或者 JQuery 定义文件是否有错误?

谢谢

最佳答案

JQuery promise 在 DefinitelyTyped 定义文件中具有复杂的结构,因为 JQuery promise 本身具有复杂的结构/历史。您应该能够通过提供通用参数而不是依赖推理来帮助编译器选择正确的重载:

.then<string>(() =>
{
return first();
})

此外,如果您有很多工作需要处理 promise,我诚恳地建议您使用像 Q.js 这样的库。 . Q 更接近作为 ES6 promise 基础的 Promises/A+ 规范,它是一个定义更简单的库,因此类型推断在 TypeScript 中往往能更好地工作,并且它提供了一堆有用的帮助工具,如 Q.all.

关于Jquery Promises Chaining + Typescript = 类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25492550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com