4

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);
        }
    }
}

私のコードに何か問題がありますか?

4

1 に答える 1