web-dev-qa-db-ja.com

TypeScriptでwindow.locationを設定します

次の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'

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

60
user1679941

_window.location_はLocation型であり、.attr('data-href')は文字列を返すので、文字列型の_window.location.href_に割り当てる必要があります。そのためには、次の行を置き換えます。

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

このために:

_window.location.href = $link.attr('data-href');
_
122
Nelson

hrefを見逃しています:

標準、window.location.hrefwindow.locationとして使用することは、技術的には以下を含むオブジェクトです。

Properties
hash 
Host 
hostname
href    <--- you need this
pathname (relative to the Host)
port 
protocol 
search 

試してみる

 window.location.href = $link.attr('data-href');
17
NullPoiиteя