타입도 변수에 담아쓰세요 type 키워드 써서 & readonly

이재협·2022년 4월 2일
0

[ TypeScript ]

목록 보기
7/13

1. 타입 정의가 너무 길면 Type Aliases (별칭)

  • type 작명할 때 대문자로 시작 (일반 변수랑 차별화를 두기 위해서)
type Animal = string | number | undefined;
let 동물 :Animal;

2. readonly로 잠그기

  • const 변수는 값이 변하지 않는 변수를 만들고 싶을 때 쓴다.
  • object 자료를 const에 집어넣어도 object 내부는 마음대로 변경가능
  • const 변수는 재할당만 막아줄 뿐이지 그 안에 있는 object 속성 바꾸는 것 까지 관여하지 않기 때문
  • readonly 키워드는 속성 왼쪽에 붙일 수 있으며 특정 속성을 변경불가능하게 잠궈준다.
type Name = {
  readonly name : string,
}

3. type 키워드 여러개를 합칠 수 있다.

  • OR 연산자 | 를 이용해 Union type을 만들 수도 있다.
type Name = string;
type Age = number;
type NewOne = Name | Age; 
  • object에 지정한 타입의 경우 & 기호 사용시 object 안의 두개의 속성을 합치기 가능
type PositionX = { x: number };
type PositionY = { y: number };
type XandY = PositionX & PositionY

4. type 키워드는 재정의가 불가능

type Name = string;
type Name = number;

* 에러 발생

숙제 1) 다음 조건을 만족하는 타입을 만들어봅시다.
1. 이 타입은 object 자료형이어야합니다.
2. 이 타입은 color 라는 속성을 가질 수도 있으며 항상 문자가 들어와야합니다.
3. 이 타입은 size 라는 속성이 있어야하며 항상 숫자가 들어와야합니다.
4. 이 타입은 position 이라는 변경불가능한 속성이 있어야하며 항상 숫자가 담긴 array 자료가 들어와야합니다. type alias로 만들어보셈

type Test1 = {
    color : string | undefined, 
    size : number,
    readonly position : number[]
}

숙제 2) 다음을 만족하는 type alias를 연습삼아 간단히 만들어보십시오.
1. 대충 이렇게 생긴 object 자료를 다룰 일이 많습니다. { name : 'kim', phone : 123, email : 'abc@naver.com' }
2. object 안에 있는 이름, 전화번호, 이메일 속성이 옳은 타입인지 검사하는 type alias를 만들어봅시다.
3. 각 속성이 어떤 타입일지는 자유롭게 정하십시오.

type Test2 = {
    name? : string,
    phone : number,
    email : string
}

숙제 3) 다음을 만족하는 type alias를 만들어보십시오.
1. 숙제2와 똑같은데 이번엔 이름, 전화번호, 이메일, 미성년자여부 속성을 옳은 타입인지 검사하는 type alias를 만들어봅시다.
2. 미성년자 여부 속성은 true/false만 들어올 수 있습니다.
3. 멋있게 숙제2에서 만들어둔 type alias를 재활용해봅시다.

type Test3 = {
    age : boolean,
}

type Right = Test2 & Test3
profile
코딩만을 잘하는 개발자가 아닌 문제를 해결하는 개발자가 되어보자

0개의 댓글