똑같은 삽질은 2번 하지 말자
Typescript에서 String 와 string의 차이 본문
개요
typescript에 있어서 String 와 string / Number 와 number
뭔가 다른걸 알고있지만, 뭐가 다른건지 구체적으로 모르겠어서 기록해둔다.
타입 스크립트에서 타입을 지정할 때에는 위처럼 대문자로 시작되는 래퍼 객체 생성은 지양한다. number,string, boolean, symbol은 primitive type 이고 Number, String, Boolean, Symbol은 참조 자료형이다.
둘은 다른 자료형이며 래퍼객체는 타입으로 사용해서는 안된다.
그럼 왜 타입으로 쓰면 안되는가?
효율성
string 타입의 값은 효율적으로 메모리에 저장된다. 반면 String 객체는 추가 메타데이터와 함수들을 포함하기 때문에 더 많은 메모리를 사용할 수 있다.
예상치 못한 행동
String 객체는 변경 가능한 속성을 포함할 수 있다. 이로 인해 예상치 못한 행동이 발생할 수 있다. 반면 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