똑같은 삽질은 2번 하지 말자

Typescript에서 String 와 string의 차이 본문

카테고리 없음

Typescript에서 String 와 string의 차이

곽빵 2022. 2. 25. 18:02

개요

typescript에 있어서 Stringstring / Numbernumber

뭔가 다른걸 알고있지만, 뭐가 다른건지 구체적으로 모르겠어서 기록해둔다.

 

타입 스크립트에서 타입을 지정할 때에는 위처럼 대문자로 시작되는 래퍼 객체 생성은 지양한다. number,string, boolean, symbol은 primitive type 이고 Number, String, Boolean, Symbol은 참조 자료형이다.

둘은 다른 자료형이며 래퍼객체는 타입으로 사용해서는 안된다.

 

그럼 왜 타입으로 쓰면 안되는가?

 

효율성

string 타입의 값은 효율적으로 메모리에 저장된다. 반면 String 객체는 추가 메타데이터와 함수들을 포함하기 때문에  많은 메모리를 사용할  있다.

 

예상치 못한 행동

String 객체는 변경 가능한 속성을 포함할  있다. 이로 인해 예상치 못한 행동이 발생할  있다. 반면 string 불변

 

타입 추론

타입스크립트의 타입 추론은 대부분 기본 데이터 타입에 기반하여 동작한다. 예를 들면 문자열 리터럴을 변수에 할당할 경우 해당 변수의 타입은 string으로 추론

String은 object string은 string

ex) 잘못된 예

function reverse(s: String): String {
  // 래퍼객체로 파라미터와 리턴타입 지정
  return s.split("").reverse().join("");
}

ex) 옳은 예

function reverse(s: string): string {
  return s.split("").reverse().join("");
}
Comments