개발자의 공부는 은퇴까지 필수다/typescript
-
[vue3 + typescript] vue route query 를 가져올 때 query 형식 때문에 발생하는 typescript 에러 처리, LocationQueryValue, LocationQueryValue[]개발자의 공부는 은퇴까지 필수다/typescript 2022. 7. 21. 22:37
검색 시에 쿼리스트링으로 검색내용들을 저장해놓고 페이지가 새로고침 되었을 때 쿼리스트링에 담겨있는 내용을 가져와 검색 객체에 set 해주는 기능을 구현하는데 type 관련 문제가 있었다. route.query 에서 반환하는 타입이 string 이 아닐 수 있다는 이유로 다음과 같은 에러가 발생한다. 검색객체의 interface 에 LocationQueryValue 타입을 추가해주는 방법도 있지만 사실 값은 실제로 number 아니면 String 이어야만 하기 때문에 불필요한 타입을 추가하는게 마음에 걸렸다. 그래서 다음과 같이 객체에 초기화되어있는 값의 type을 체크해서 무조건 String 또는 Number 로 타입을 변환하는 작업을 추가했다. const makeParamByQueryString = (..
-
[typescript 유니온타입] 코드리뷰 후 메모 - typescript 매개변수을 유니온타입 배열형으로 정의 시 Array 함수 호출 시 에러개발자의 공부는 은퇴까지 필수다/typescript 2022. 7. 20. 10:49
기존에 이렇게 정의되어있었다. const isExistTargetId = (target: Customer | Course, selectedTargets: Customer[] | Course[]) => { const found = Array.prototype.find.call( selectedTargets, (selectedTarget: Customer | Course) => selectedTarget.id === target.id, ); return !!found?.id; }; Array 함수를 이용하는데 call 을 사용한 이유는 다음과 같이 This expression is not callable 이라는 에러가 발생했기 때문이다. 분명히 selectedTargets 는 어떤 타입이든 [] 배열로 정의..