본문 바로가기

Typescript/우아한 타입스크립트 with 리액트

2.3 원시타입-2

4. number

const maxLength: number = 10;
const maxWidth: number = 120.3;
const maximum: number = +Infinity;
const notANumber: number = NaN;

자바스크립트의 숫자에 해당하는 모든 원시 값을 할당할 수 있다. 자바 같은 언어에서는 byte.short.int.long.double.float 등 다양한 숫자 타입으로 구분되어 있는 것과 달리 자바스크립트는 정수, 부동소수점수를 구분하지 않기 때문에 모두 number 타입에 할당할 수 있다. 자바스크립트에서 숫자에 해당하는 원시 값 중 NaN이나 Infinity도 포함된다. NaN은 Not A Number의 줄임말로 숫자가 아님을 나타낸다. Infinity는 무한대를 나타내는 숫자형 값이다.

 

5. bigInt

const bigNumber1: bigint = BigInt(999999999999);
const bigNumber2: bigInt = 999999999999n;

ES2020에서 새롭게 도입된 데이터 타입으로 타입스크립트 3.2버전부터 사용할 수 있다. 이전의 자바스크립트에서는 가장 큰 수인 Number.MAX_SAFE_INTEGER(2^53 - 1)를 넘어가는 값을 처리할 수 없었는데 bigInt를 사용하면 이보다 큰 수를 처리할 수 있다.

number 타입과 bigInt 타입은 엄연히 서로 다른 타입이기 때문에 상호 작용은 불가능하다.

 

 

6. string

const receiverName: string = “KG”;
const receiverPhoneNumber: string = “010-0000-0000”;
const letterContent: string = `안녕, 내 이름은 ${senderName}이야.`;

문자열을 할당할 수 있는 타입이다. 공백도 string 타입에 해당한다. 작은 따옴표(')나 큰따옴표(")를 둘러싼 문자열말고도 백틱(`)으로 감싼 문자열 내부에 변숫값을 포함할 수 있는 템플릿 리터럴 문법도 있다.

 

 

7. symbol

const MOVIE_TITLE = Symbol("title");
const MUSIC_TITLE = Symbol("title");
console.log(MOVIE_TITLE === MUSIC_TITLE); // false

let SYMBOL: unique symbol = Symbol(); // A variable whose type is a 'unique symbol'
// type must be 'const'

ES2015에서 새롭게 도입된 데이터 타입으로 Symbol() 함수를 사용하면 어떤 값과도 중복되지 않는 유일한 값을 생성할 수 있다. 예시처럼 "title"이라는 동일한 문자열을 넘겨줬을 때도 서로 다른값을 가지고 있음을 알 수 있다. 타입스크립트에는 Symbol 타입과 const선언에서만 사용할 수 있는 unique symbol 타입이라는 symbol의 하위 타입도 있다.

 

 

출처 - 우아한 타입스크립트 with 리액트