본문 바로가기

타입스크립트

(2)
6/16 - 재밌는 실수 오늘 재밌는 실수가 하나 있었는데, 테스트의 필요성을 느낀 실수 였다. 먼저, 기존 코드에서는 특정 시각이 오전인지 오후인지를 구하고 있었다. 오전 오후를 구별하는 로직은 자주쓰일 가능성이 높기 때문에 나는 이 로직을 별도로 빼냈다. 별다른 타입오류도 발생하지 않았기에 안심하고 커밋&푸시를 했다. 그리고 시간이 좀 지났을까 채팅방에는 사진이 하나 올라왔다. 내가 짠 코드였다. 오전인지를 구하는 함수인데, 시간이 12시간보다 큰지를 반환하고 있었던 것이다. 테스트 코드의 중요성이 느껴지는 순간이었다. 만약에 테스트코드가 있었다면 오전 9시가 오후로 반환되는걸 미리 캐치해서 테스트를 통과하지 못했을 것이다. 그럼 왜 테스트가 실패했는지 확인했을 것이다. 그리고 나는 푸시 전에 바로, 오류를 확인하고 수정할 ..
[TypeScript] 옵셔널 체이닝(Optional Chaining) 타입스크립트 3.7이 릴리즈 되면서 새롭게 사용할 수 있게 된 문법 중에 하나가 바로 "옵셔널 체이닝(Optional Chaining)"이다. null이나 undefined인 값이 반환되면, 즉시 중단하고 undefined를 반환하는 문법이다. 코드가 즉시 중단 되는 것은 꽤 멋진 것이, 보통의 경우, null이나 undefined에 접근하여 함수를 실행시키는 경우에는 오류가 발생하지만, 이 경우에는 오류 없이 바로 undefined를 반환 한다는 것이다. const apple = garden?.tree.getApple(); 위 코드는 아래와 같다. const apple = (garden === nulll || garden === undefined).tree.getApple(); 위의 코드가 헐씬 간결한..