TIL.type 'string' is not assignable to type 'location' window.location

seul3·2022년 4월 13일
0

TIL.Error

목록 보기
3/3
post-thumbnail

1.문제점

해당 문제는 모달창에 어떠한 버튼을 클릭하면 전화가 연결되는 로직을 짜면서 나온 에러다.

Type 'string' is not assignable to type 'location' window.location


2.해결 과정

이 문제도 처음에는 이걸 어떻게 해결하지 ? 막막 했습니다.
왜냐면 해당 부모 컴포넌트에서 로직을 짜는데 그 자식에게 이미

<a href tel=""> <a>

a 태그가 걸려져 있었기 때문입니다 ㅠㅠ....그래서 와 어쩌지? a 태그 관련한 문서도 뒤져봤지만 결국 이동하기 위해서는 a 태그를 감싸야 한다는 것이 저의 결론이였습니다.

조건은 9시부터 18시에만 저 태그에 맞게 넘어가야 하는데 a태그를 걸어버린 순간 무조건 a 태그가 반응하기 떄문입니다.

그래서 여러 도움을 받았습니다.

첫번째 문제 해결에 도움 준 질문글

처음에 이 글을 읽고

이거다! 하고 부모 함수 내에 쓰면 될까?하고 자식에 태그 건 것을 지우고 부모 함수 내에 쓰기 시작했습니다.

즉 해결 과정은 이러합니다.

만약 위에 그대로 쓰게 된다면
''type ‘string’ is not assignable to type ‘location’ window.location"
이러한 타입스크립트 에러를 뱉습니다.

window.open(‘tel:0000-0000’); 이렇게 쓰게 된다면 새 창이 열립니다.
하지만 저는 새 창이 열리지 않고 연결되기 바랬기에,

window.location = ‘tel:0000-0000’;
이렇게 사용해서 적으니 에러 메세지를 뱉었습니다.

그래서 결과적으로

window.location.href = ‘tel:0000-0000’; 이렇게 사용해서 쓰니 해결 됐습니다.

자식에게 를 감싸지 않고 contactCompleteHanlder 함수 안에 저 부분을 추가하니 손쉽게 해결 됐습니다!


3.해결방법

해결도 결국...

window.location.href = ‘tel:0000-0000’;

이렇게 적으니 ㅎㅎㅎㅎ 아주 잘 됩니다.

✍️ ✅

이 문제는 알고나서는 솔직히 허탈 했습니다ㅠㅠ하지만 이 문제는 정말 감도 안왔고 어떻게 해야할지 몰랐습니다. 좋은 사실을 알아갑니다...덧붙여서 검색을 할 때 너무 장황하게 쓰지 않는게 중요하구나 깨달았습니다.


문제 해결에 가장 큰 도움을 받은 출처 목록
https://stackoverflow.com/questions/13106950/set-window-location-with-typescript

profile
꾸준히 성장하는 개발자 입니다 😊

0개의 댓글