gpt4 book ai didi

jquery - typescript 运行时类型测试

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

我有一个 Typescript 类方法(使用 DefinitelyTyped JQuery 定义),我希望它看起来像这样:

  DoStuff(data: JQuery | string) {
if (data instanceof JQuery)
DoThis()
else
DoThat();
}

但是 instanceof 行给出了错误:'JQuery' 只引用了一个类型,但在这里被用作一个值。

这样做的正确方法是什么?我显然可以使用 typeof(data) != "string" 但这感觉像是作弊。

最佳答案

您将需要一个自定义类型保护来确定您是否拥有 jQuery。

下面的示例对于生产来说太轻了,因为其他对象可能具有附加功能 - 您需要检查足够多的鸭子以确保它是一只鸭子,而不仅仅是喙。它确实演示了如何使用自定义类型保护:

function isJquery(obj: JQuery | any): obj is JQuery {
return typeof (<JQuery>obj).append === 'function';
}

var x: JQuery | string;

if (isJquery(x)) {
x.append('Something');
} else {
x.indexOf('blah...');
}

关于jquery - typescript 运行时类型测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44041663/

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