如何应用jQuery实例的类型警卫?

我试图为一个可能是jQuery实例的变量应用一个类型警卫。 但是,由于JQueryjquery.d.ts一个接口,我不能在instanceof使用它。 下面的代码看起来不起作用,我想是因为TS不知道作为jQuery实例意味着是JQuery接口的“实例”。

var stringOrJQuery: string | JQuery;
...
if (stringOrJQuery instanceof jQuery) {
  ...
  // here stringOrJQuery is still string | JQuery
  ...
}

我正在使用TS 2.0测试版。


你可以检查字符串大小写:

if(typeof stringOrJQuery === 'string') {
    // string case
}
else {
    // jquery case case
}

或者,您可以通过间接检查来确定jQuery对象,如本问题答案中所描述的那样,例如:

if(stringOrJQuery.jquery !== undefined) { ... // this is a jQuery object

jQuery对象的jquery字段包含jQuery版本,应该定义。

链接地址: http://www.djcxy.com/p/83945.html

上一篇: How to apply a type guard for jQuery instance?

下一篇: How to check if an object is a jQuery event