[ Typescript ] - 타입도 변수에 담기 (type alias) & readonly

최문길·2023년 12월 21일
1

Typescript

목록 보기
7/23

Type Aliases (별칭)

let player : number | string | boolean | undefined | null
// 타입지정만.. 몇개니..

타입을 나열하는 경우가 정말 많고 코드가 더러워보일 위험이 있다.

이럴 때 변수에 담아쓸 수가 있는데

type 이라는 키워드를 쓰면 된다.

type 키워드를 쓰는 것을 type alias라고 한다.

type Player = number | string | boolean | undefined | null
let user : Player ;

type 타입변수명 = 타입종류
이렇게 사용하면 된다.

관습적으로 타입얼라이어스를 할 때 관습적으로 변수명은 대문자로 시작

Object 와 배열도 가능

오브젝트의 type Alias

type Animal = {
      eyes : number
      leg : number
      name: string
      isAlive : boolean
}

let myPet : Animal = {
  eyes : 4,
  leg ; 4,
  name: '투투',
  isAlive : false
}

배열의 type Alias

type Bird = string []
let bird : Bird = ['asd','asdf'] // 굳이 타입지정을?? 암튼 된다.

Object의 typeAlias의 이모저모

object의 value값을 타입의 readonly로 잠그기

Javascript 에서

const obj = {집문서 : '강남', 집명의: '나' }
obj.집명의 = '친구A'

console.log(obj) // {..., 집명의:'친구A'}

const로 object를 선언해도 내부값은 참조만 하고 있는 것이기에 변경이 가능하다.

object의 값을 바뀌지 않게 막고 싶으면 typescirpt의 문법 을 사용해보자



readonly 키워드는 오브젝트의! 속성 왼쪽에 붙일 수 있다

object의 특정 속성을 변경불가능하게 잠궈준다.

type 재산 = {
      readonly 집명의: string
      집문서: string[]
}

const 내재산 : 재산 = {
  집명의 : 'choi'
  집문서 : ['강남','별내']
}
// 이렇게 타입에서 readonly로 특정 key,value를 잠궈버리면
// 오브젝트 변수에 타입을 지정하고 key,value 값을 '선언' 해버리면
// 바꿀 수 없게 된다. 


오브젝트의 속성 몇개가 선택사항이라면

type alias에 ? 물음표 연산자를 추가해주자

type Square = {
  color ?: string,
  width: number
}
let square : Square = {
  width: 200
}

오브젝트의 type alias의 물음표도
undefined 라는 타입도 가질 수 있다 라는 의미이다.

type 키워드 조합

OR 연산자도 있는데 &연산자가 없을까...

type Name = string;
type Age = number;
type NewOne = Name | Age; 

OR 연산자를 사용하여 Union type을 만들 수 있다.



type PositionX = { x: number };
type PositionY = { y: number };
type XandY = PositionX & PositionY
let 좌표 :XandY = { x : 1, y : 2 }

object에 지정한 타입의 경우에도 합칠수 가있다.
합치다라는 표현보단

멋진 개발자 용어로type alias를 extend 한다라고 말하자!

0개의 댓글