1

私は次のコードを持っています:

function submitSuccessAccess() {
    $(".accessLink")
        .attr("data-disabled", "no");
    window.location.reload();
}

私はこの関数を次のように呼び出そうとしています:

submitSuccessAccess();

ただし、submitSuccessAccessの下に赤い下線が表示されます。指定されたパラメーターが呼び出しターゲットのどのシグネチャとも一致しません。submitSuccessAccessが期待しているようです:

(eventObject: JQueryEventObject) => any

一時的な解決策を見つけました。私は次のように定義して使用します。

function submitSuccessAccess(any) {
    $(".accessLink")
        .attr("data-disabled", "no");
    window.location.reload();
}
submitSuccessAccess(null);

このようなことを経験したのは私だけですか?

4

2 に答える 2

2

タイプスクリプトのバグのため。

関数の戻り値の型を指定して、次の jQuery.d.ts にある定義で関数定義を変更してみてください。

jqueryevent(handler: (eventObject: JQueryEventObject) => any): JQuery;

jqueryevent は click、bind などのようなものです。

あなたの定義は次のようになります。

function submitSuccessAccess():void {
    $(".accessLink")
        .attr("data-disabled", "no");
    window.location.reload();
}

そして、おそらくあなたの呼び出しコンテキストは次のようなものでした:

$(selector).click(function() {
    submitSuccessAccess();
});

これは次のようなもので初期化されました:

$(document).ready(function() {
    initSubmitAccessFunction();
})
于 2012-12-06T10:27:03.173 に答える
0

関数の実際のコードは次のようになります。

function submitSuccessAccess(eventObject: JQueryEventObject) {
    $(".accessLink")
        .attr("data-disabled", "no");
    window.location.reload();
}

パラメータを指定したくない場合は、jquery.d.ts ファイルの関連する行を変更できます。

(eventObject: JQueryEventObject) => any

(eventObject?: JQueryEventObject) => any

そもそもこうあるべきだったのかもしれません。

于 2012-10-30T19:40:08.580 に答える