Подтвердить что ты не робот

Установите window.location с помощью TypeScript

Я получаю сообщение об ошибке со следующим кодом 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'

Кто-нибудь знает, что это значит?

4b9b3361

Ответ 1

window.location имеет тип Location, а .attr('data-href') возвращает строку, поэтому вам нужно назначить ее window.location.href, которая также имеет тип строки. Для этого замените следующую строку:

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

для этого:

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

Ответ 2

вы пропустили href:

Стандарт. Использовать window.location.href как window.location - это технически объект, содержащий:

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

попробовать

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