Item 10 객체 래퍼 타입 피하기
Avoid Object Wrapper Types
자바스크립트에 객체 이외에 기본 타입 종류는 총 7개이다. 그리고 대응되는 래퍼 타입들이 존재한다.
string
-String
number
-Number
boolean
-Boolean
null
undefined
symbol
-Symbol
bigint
-BigInt
기본형들은 불변(immutable)이며, 메서드를 갖지 않는다는 점에서 객체와 구분된다.
그런데 기본형인 string의 경우 메소드를 갖고 있는 것처럼 보인다.
사실 charAt
은 string
의 메서드가 아니다. 메서드를 갖는 String
'객체' 타입이 정의되어 있다. JS는 기본형을 String
객체로 래핑(wrap)하고, 메서드를 호출하고, 마지막에 래핑한 객체를 버린다.
타입스크립트는 기본형과 객체 래퍼 타입을 별도로 모델링한다.
string
-String
number
-Number
boolean
-Boolean
symbol
-Symbol
bigint
-BigInt
Summary
기본형 값에 메서드를 제공하기 위해 객체 래퍼 타입이 어떻게 쓰이는지 이해해야 한다. 직접 사용하거나 인스턴스를 생성하는 것은 피하자.
타입스크립트 객체 래퍼 타입은 지양하고, 대신 기본형 타입을 사용해야 한다.
String
대신string
,Number
대신number
,Boolean
대신boolean
,Symbol
대신symbol
,BigInt
대신bigint
를 사용해야 한다.
Last updated