TIL #44 | TypeScript - 타입의 종류

kibi·2023년 12월 14일
0

TIL (Today I Learned)

목록 보기
43/83

TypeScript는 JavaScript의 타입을 상속한다.

Primitive Types

  • string
  • number
  • boolean
  • null : null 값을 가진다.
  • undefined : 초기화되지 않은 변수의 기본값을 가진다.
  • symbol : 고유한 상수 값을 나타낸다.

Object Types

  • function
  • array
  • classes
  • object

Typescript에서 추가 제공되는 타입

any

잘 알지 못하는 타입을 표현해야 할 때 any를 사용할 수 있다.
하지만 타입을 쓰는 이유는 명확한 타입을 지정하여 타입 안정성을 확보하기 위해서이기 때문에 최대한 쓰지 않는 것이 좋다.
any를 대체할 타입으로 unknown이 있다.


unknown

any와 비슷하게 모든 타입을 저장할 수 있다.
그렇지만 값을 다른 타입의 변수에 할당하려면 명시적으로 타입을 확인해야 하기 때문에 더 안전하다.
타입을 보장하는 방법으론 타입 단언(Type Assertion) 하는 방법과 typeof로 타입을 미리 체크한 뒤 변수에 할당하는 방법이 있다.

let unknownValue: unknown
//타입 단언(Type Assertion)
stringValue = unknownValue as string
let unknownValue: unknown
let stringValue: string

// typeof로 타입 체크
if (typeof unknownValue === 'string') {
	stringValue = unknownValue;
} 
  • unknown 타입도 재할당이 일어나지 않으면 타입 안정성이 보장되지 않는다.

union

여러 타입 중 하나를 가질 수 있는 변수를 선언할 때 사용된다.
| 연산자를 사용하여 둘 이상의 타입을 결합하여 표현한다.

type value = string | number

enum

enumerated type(열거형 데이터 타입)

enum을 사용하면 상수의 그룹화를 통해 값들의 집합을 명시할 수 있다.

컴파일 시에 자동으로 숫자 값으로 매핑되므로 따로 값을 할당할 필요가 없다.
(PrintMedia는 별도의 값이 설정되지 않을 경우 0부터 시작한다.)
enum의 속성값으로는 문자열 혹은 숫자만 허용하며, 선언할 때 이후에 변경할 수 없다.

enum Language = {
  korean = 'ko',
  english = 'en',
  spanish = 'es'

object literal

키-값 쌍으로 구성된 객체를 정의하는 방식

객체 리터럴을 사용할 땐 어떤 타입의 값도 대입할 수 있으며 새로운 속성을 자유롭게 추가할 수 있다.

const obj = {
  a: [1, 2, 3],
  b: 'b',
  c: 4
}

0개의 댓글