3
我在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);
}
}
}
有什麼錯我的代碼?
+1好答案。 – Fenton
你是非常有幫助的。我的英語不太好,我無法清楚地理解錯誤信息。我一直沒有意識到它可以在使用三元運算符時返回不同類型的值。 –
從你的問題我不能告訴你是英語不好:)我的錯誤,很高興已經幫助! – thomaux