Item 20 다른 타입에는 다른 변수 사용하기

다른 타입에는 별도의 변수를

변수를 무분별하게 재사용하면 타입 체커와 사람 모두에게 혼란을 준다.

다른 타입에는 별도의 변수를 사용하는 게 바람직한 이유는 다음과 같다.

  • 서로 관련이 없는 두 개의 값을 분리한다.

  • 변수명을 더 구체적으로 지을 수 있다.

  • 타입 추론을 향상시키며, 타입 구문이 불필요해진다.

  • 타입이 좀 더 간결해진다. (string|number 대신 stringnumber를 사용.)

  • let 대신 const로 변수를 선언하게 된다. const로 변수를 선언하면 코드가 간결해지고, 타입 체커가 타입을 추론하기 좋다.

Shadowed Variable (가려진 변수)

재사용되는 변수와 '가려지는' 변수를 혼동하지 말자.

const id = '12-34-56'
fetchProduct(id)

{
  const id = 123456              // OK
  fetchProductBySerialNumber(id) // OK
}
  • 여기서 두 id는 이름은 같지만 서로 아무런 관계가 없다. 그러므로 다른 타입으로 사용되어도 문제가 없다.

  • 하지만 사람에게 혼란을 줄 수 있다.

  • 많은 개발팀이 린터 규칙을 통해 '가려지는' 변수를 사용하지 못하도록 하고 있다. (no-shadowed-variable)

Summary

  • 변수의 값은 바뀔 수 있지만 타입은 일반적으로 바뀌지 않는다.

  • 혼란을 막기 위해 타입이 다른 값을 다룰 때에는 변수를 재사용하지 않도록 한다.

Last updated