1. ホーム
  2. javascript

[解決済み] TypeScriptでwindow.locationを設定する

2022-12-04 08:26:50

質問

以下のTypeScriptのコードでエラーが発生します。

 ///<reference path='../../../Shared/typescript/jquery.d.ts' />
 ///<reference path='../../../Shared/typescript/jqueryStatic.d.ts' />

 function accessControls(action: Action) {
    $('#logoutLink')
        .click(function () {
            var $link = $(this);
            window.location = $link.attr('data-href');
        });

 }

以下のように下線付きの赤いエラーが出ます。

$link.attr('data-href'); 

というメッセージが表示されます。

Cannot convert 'string' to 'Location': Type 'String' is missing property 'reload' from type 'Location'

これが何を意味するのか、誰か知っていますか?

どのように解決するのですか?

window.location は、タイプ Location 一方 .attr('data-href') は文字列を返すので、それを window.location.href に代入する必要があります。そのためには、次の行を書き換えてください。

window.location = $link.attr('data-href');

をこのようにします。

window.location.href = $link.attr('data-href');