web-dev-qa-db-fra.com

Définir window.location avec TypeScript

Je reçois une erreur avec le code TypeScript suivant:

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

 }

Je reçois une erreur rouge soulignée pour les éléments suivants:

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

Le message dit:

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

Quelqu'un sait-il ce que cela signifie?

60
user1679941

window.location Est de type Location tandis que .attr('data-href') renvoie une chaîne, vous devez donc l'affecter à window.location.href Qui est également de type chaîne. Pour cela, remplacez votre ligne suivante:

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

pour celui-ci:

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

vous avez manqué le href:

Standard, pour utiliser window.location.href comme window.location est techniquement un objet contenant:

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

essayer

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