我试图为可能是jQuery实例的变量应用类型保护。但是,由于JQuery
是来自jquery.d.ts
的界面,我无法将其与instanceof
一起使用。以下代码似乎不起作用,我猜是因为TS没有"知道"作为jQuery
的实例意味着成为"实例" JQuery
界面。
var stringOrJQuery: string | JQuery;
...
if (stringOrJQuery instanceof jQuery) {
...
// here stringOrJQuery is still string | JQuery
...
}
我使用的是TS 2.0测试版。
答案 0 :(得分:3)
您可以检查字符串大小写:
if(typeof stringOrJQuery === 'string') {
// string case
}
else {
// jquery case case
}
或者,您可以通过the ones described in this question's answers之类的间接检查来确定jQuery对象,例如:
if(stringOrJQuery.jquery !== undefined) { ... // this is a jQuery object
jQuery对象的jquery
field包含jQuery版本,应该定义。