본문으로 건너뛰기

아이템 10 객체 래퍼 타입 피하기

'primitive'.charAt(3); // "m"

charAtstring 의 메서드가 아니며, string 을 사용할 때 자바스크립트 내부적으로 많은 동작이 일어난다. string ‘기본형’에는 메서드가 없지만, 자바스크립트에는 메서드를 가지는 String ‘객체’ 타입이 정의되어 있다. 자바스크립트는 기본형과 객체 타입을 서로 자유롭게 변환한다. string 기본형에 charAt 같은 메서드를 사용할 때, 자바스크립트는 기본형을 String 객체로 래핑(wrap)하고, 메서드를 호출하고, 마지막에 래핑한 객체를 버린다.

노트

래퍼 객체가 더 크다. String > string

요약

  • 기본형 값에 메서드를 제공하기 위해 객체 래퍼 타입이 어떻게 쓰이는지 이해해야 한다. 직접 사용하거나 인스턴스를 생성하는 것은 피해야 한다.
  • 타입스크립트 객체 래퍼 타입은 지양하고, 대신 기본형 타입을 사용해야 한다. String 대신 string, Number 대신 number, Boolean 대신 boolean, Symbol 대신 symbol, BigInt 대신 bigint 를 사용해야 한다.