vue ts router를 쓰다가 이 오류를 만남.
'{ 라우터: 라우터; 유형의 인수 }'는 'Plugin<[]>' 유형의 매개변수에 할당할 수 없습니다.
app.use(router as any);
이거 쓰면 오류는 사라지는데..
왜 사라지느냐?
any는 TS의 탈출구문으로 타입 시스템의 제한을 벗어나고 싶을때 any 를 사용할 수 있다.
any를 사용하면 타입의 안정성을 희생하는 대신 코드를 원래 JS에 더욱 가깝게 작성할 수 있다.
any는 어떤 타입이든 다른 타입에 할당할 수 있도록 만드는 '타입 와일드카드'와 같다.
라고 한다.
( 참고 : https://velog.io/@daily_d/TypeScript-%ED%83%80%EC%9E%85-%EC%98%A4%EB%A5%98 )
이런 것도 있었는데..
아래는 비슷한 내용..
근데! 우선적으로 Argument of type '{ router: Router; }' is not assignable to parameter of type 의 에러가 뜨는 이유는
typescript가 예상하고 있는 특정한 type이 아닌, 다른 type을 넘겨줬을 때 발생하게 된다! 고 한다
(참고 : https://jaylee-log.tistory.com/46 )
해결방법은 아래와 같이 typeof를 활용하여 정확한 javascript의 value type을 확인 하면 해결이 된다.
if (typeof token === 'string'){
validateToken(token);
}
근데.. 이거 맞나..? 일단은 any로 진행하고 나중에 수정하겠음.
글 작성 참고:
'coding > ts' 카테고리의 다른 글
[ts]러닝 자바스크립트 책 정리(1) (0) | 2024.08.22 |
---|---|
[ts] Record type (0) | 2024.08.21 |