[240109] 올해 버려야 할 타입스크립트 나쁜 버릇 10가지

올해 버려야 할 타입스크립트 나쁜 버릇 10가지

감명받은 핵심 내용

옵셔널 프로퍼티

잘못된 코드

interface Product {
  id: string
  type: "digital" | "physical"
  weightInKg?: number
  sizeInMb?: number
}

올바른 코드

interface Product {
  id: string
  type: "digital" | "physical"
}

interface DigitalProduct extends Product {
  type: "digital"
  sizeInMb: number
}

interface PhysicalProduct extends Product {
  type: "physical"
  weightInKg: number
}
  • 명시적인 타입을 가질수록 발견되지 않을 수 있었던 버그에 대한 컴파일 검사 받을 수 있음

뱅뱅 연산자

잘못된 코드

function createNewMessagesResponse(countOfNewMessages?: number) {
  if (!!countOfNewMessages) {
    return `You have ${countOfNewMessages} new messages`
  }
  return "Error: Could not retrieve number of new messages"
}

올바른 코드

function createNewMessagesResponse(countOfNewMessages?: number) {
  if (countOfNewMessages !== undefined) {
    return `You have ${countOfNewMessages} new messages`
  }
  return "Error: Could not retrieve number of new messages"
}
  • 나도 c#, c++ 개발을 더 오래 했어서, 코드베이스를 이해하기 어렵게 만든다는 말에 공감
  • 잠재적 버그도 만들기 쉬움

Categories:

Updated:

Leave a comment