성장과정(dev)/Typescript ⊃Javascript
-
mail send issue) nate email 비정상적인 url 생성성장과정(dev)/Typescript ⊃Javascript 2023. 5. 23. 20:32
기능: pdf 파일 링크를 포함하고 있는 html 형식의 이메일을 보내주는 기능 이슈: 다른 이메일로 보낼 때는 문제가 없었지만, nate 에서만 수신한 메일의 url을 클릭 시 정상적으로 접근이 안되는 문제 메일 url을 복사해보니 아래와 같은 url 이 있었다. https://mail3.nate.com/&#-2F;&#-2F;callback.io&#-2F;settlement&#-2F;statement&#-2F;settlement.pdf 대충 인코딩이 잘못된 문제 같긴 하지만, - 라는 것은 잘못된 인코딩 정보에 쓰이는 것 같았다. (&#-2F) 그리고 저 자리에 들어가야하는 것은 슬래쉬(/)이다. 처리과정 1. 메일사이트엔 대부분 원문보기가 기능이 있다. 잘못온 메일의 원문보기 기능을 이용해 실제 텍스..
-
[javascript] object 조건에 따라 특정 키 추가하기성장과정(dev)/Typescript ⊃Javascript 2023. 1. 19. 10:21
보면 쉬운데, 왜 항상 쓸때마다 헷갈리는 지 모르겠다 허허... let includeA = true; let includeB = false; let obj = { ...(includeA && { a : 3 }), ...(includeB && { b : 3 }), c : 3 } // obj = { a:3 , c:3} from https://all-dev-kang.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B0%9D%EC%B2%B4%EC%97%90-%EC%A1%B0%EA%B1%B4%EB%B6%80%EB%A1%9C-%EC%86%8D%EC%84%B1%EC%9D%84-%EC%B6%94%EA%B0%80%ED%95%98%E..
-
[javascript] new Error ('', {cause: {...}}) Expected 0-1 arguments, but got 2.성장과정(dev)/Typescript ⊃Javascript 2022. 11. 19. 01:32
mdn 공식 문서에서 지원하는 에러 생성 방식을 보면 두번째 인자로 에러 상세 원인을 출력할 수 있다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause 하지만 예제와 똑같이 적용해보면 arguments 가 0~1개라는 에러가 발생한다. throw new Error('RSA key generation requires two co-prime integers.', { cause: { code: 'NonCoprime', values: 'test' }, } 원인은 물론 버전 문제겠지? 사수의 도움을 받아... Error 객체의 change log 를 구글링 해보고 typescript + node ..
-
객체에서 특정 키만 뽑아서 새로운 객체 만들기성장과정(dev)/Typescript ⊃Javascript 2022. 9. 8. 17:05
for문 이용하기 const submitData = {}; const submitKeys = ['type', 'submitAnswer', 'questionId', 'exampleAnswers']; submitKeys.forEach((key) => (submitData[key] = props[key])); 구조분해 이용하기 const { type, submitAnswer, questionId, exampleAnswers } = props; state.answers[props.questionNumber] = { type, submitAnswer, questionId, exampleAnswers };
-
[typescript] vue route query 를 가져올 때 query 형식 때문에 발생하는 typescript 에러 처리, LocationQueryValue, LocationQueryValue[]성장과정(dev)/Typescript ⊃Javascript 2022. 7. 21. 22:37
사용중인 프레임워크: vue3 검색 시에 쿼리스트링으로 검색내용들을 저장해놓고페이지가 새로고침 되었을 때 쿼리스트링에 담겨있는 내용을 가져와 검색 객체에 set 해주는 기능을 구현하는데type 관련 문제가 있었다.route.query 에서 반환하는 타입이 string 이 아닐 수 있다는 이유로 다음과 같은 에러가 발생한다.검색객체의 interface 에 LocationQueryValue 타입을 추가해주는 방법도 있지만 사실 값은 실제로 number 아니면 String 이어야만 하기 때문에 불필요한 타입을 추가하는게 마음에 걸렸다.그래서 다음과 같이 객체에 초기화되어있는 값의 type을 체크해서 무조건 String 또는 Number 로 타입을 변환하는 작업을 추가했다. const makeParamBy..
-
[typescript 유니온타입] 코드리뷰 후 메모 - typescript 매개변수을 유니온타입 배열형으로 정의 시 Array 함수 호출 시 에러성장과정(dev)/Typescript ⊃Javascript 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 이라는 에러가 발생했기 때문이다.분명히 sele..
-
이미지 파일 사이즈 리사이징성장과정(dev)/Typescript ⊃Javascript 2022. 5. 9. 13:58
이미지를 리사이징하기 위해 base64로 이미지를 변환한다. 여기서 이미지 변환 quality 에 대하여 브라우저 의존적이며, 크롬이나 파이어폭스에서의 default 값은 0.92이다. (0~1 사이로 정의해야하며 낮으면 그만큼 low quality image로 변환된다. canvas.toDataURL(`image/jpeg`, /* default quality */) 이미지 용량 줄이기 let base64 = e.target.result; /** 용량 줄이기 */ const image = new Image(); image.src = base64; image.onload = (event) => { const $canvas = document.createElement(`canvas`); const ctx =..