programing

TypeScript를 사용하여 window.location을 설정합니다.

telecom 2023. 3. 1. 09:31
반응형

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'

이게 무슨 뜻인지 아는 사람?

window.location종류Location하는 동안에.attr('data-href')문자열을 반환하기 때문에 에 할당해야 합니다.window.location.href스트링 타입도 있어요.그 경우는, 다음의 행으로 치환해 주세요.

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

이 경우:

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

놓치셨습니다.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');

저기...assignLocation 인터페이스상의 메서드는 문자열이 전달되었을 때 타이프 스크립트와 완벽하게 일치하며 와 동일하게 동작합니다.window.location = LOCATION.

window.location.assign('http://example.com');
interface Location {
    ...
    /** Navigates to the given URL. */
    assign(url: string | URL): void;
}

이 방법은 오랫동안 사용되어 온 것 같습니다(IE 5.5!).

https://developer.mozilla.org/en-US/docs/Web/API/Location/assign

복잡한 PayPal 통합을 구현하고 있을 때, 저는 매우 설득력 있는 이유를 발견했습니다.window.location를 필요로 하지 않습니다.

그 때문에, 다음과 같은 작업을 수행했습니다.

(<any> window).location = myUrl;

대신:

window.location.href = myUrl;

OP의 경우:

var myUrl = $link.attr('data-href');;

href만 추가해 주세요.

다음과 같이 합니다.

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

언급URL : https://stackoverflow.com/questions/13106950/set-window-location-with-typescript

반응형