我在 Visual Studio 2012 中使用 typescript 0.9.0.1。在我的代码中使用三元运算符时,编译器抛出错误:无法确定条件表达式的类型。void
在和之间找不到最佳通用类型boolean
。
代码是:
export class event
{
public static add (elem: HTMLElement, ev: string, fn: (ev: Event) => void, thisObj?)
{
var callFn = function (ev: Event) { fn.call(thisObj || elem, ev); };
elem.addEventListener ? elem.addEventListener(ev, callFn, false) : elem.attachEvent('on' + ev, callFn);
}
}
我尝试使用 if-else 而不是三元运算符。然后错误不会发生。
代码是:
export class event
{
public static add (elem: HTMLElement, ev: string, fn: (ev: Event) => void, thisObj?)
{
var callFn = function (ev: Event) { fn.call(thisObj || elem, ev); };
if (elem.addEventListener)
{
elem.addEventListener(ev, callFn, false);
}
else
{
elem.attachEvent('on' + ev, callFn);
}
}
}
我的代码有问题吗?