TypeScript 시작하기_2

JOUNG·2023년 5월 8일
0

Typescript

목록 보기
2/2
post-thumbnail

1. type alias(타입 변수)

타입도 변수에 담아서 쓸 수 있다.

타입 변수 선언

type Animal = string | number | undefined;

타입변수의 특징은 type을 먼저 선언한 후
대문자로 변수이름을 지정해준다.
들어올 타입을 기입해주면 된다.

타입 변수 사용

const 동물들 : Animal = "고양이";

object타입으로도 타입변수 사용해보기

type Animal2 = {name:string, age:number}
const 동물들 : Animal2 = { name: "고양이", age:10}

2. Object타입의 키값을 Lock하는 방법

우리는 오브젝트를 타입변수를 활용해 타입을 지정할 수 있었다.
오브젝트 안에 키값을 변경하지 않도록 설정하고 싶다면? 어떻게 해야 할까?

코드로 예시를 들어보자

type Member = {name: string}

타입 변수로 name이라는 키에 string값을 지정하고

const 사람:Member = {name:'엠버'}

Member라는 타입변수를 이용해 string 타입을 지정하고
이름은 엠버라는 키값을 넣어주었다.

사람.name = '유라'

이름을 유라로 변경을하면 에러 없이 그대로 변경을 할 수 있다.
여기서 키값을 변경 할 수 없도록 락을 거는 방법을 알아보자.

readonly를 붙여 변경을 못하도록 에러메시지를 보낸다.

readonly를 앞에 붙여 주는 방법

type Member = {readonly name : string}

이렇게 하면
읽기 전용 속성이므로 'name'에 할당할 수 없습니다 라는 에러메세지가 뜬다.
하지만 readonly의 속성은 에디터에 에러를 띄어줄 뿐
Js실행과는 전혀 상관이 없다. 참고하자^^

?를 붙여주는 방법은 뭘까?

?를 키뒤에 붙여주는 방법은 뒤에 어떤 타입의 데이터가 들어올지 애매할 때 사용해준다.

type Member = {name?:string}

뒤에 ?의 의미는 무엇일까?
string|undefined를 의미한다.

3. & 엔드 연산자로 Object타입 합치기

따로 선언되어 있는 오브젝트타입을 합치고 싶다면 어떻게 해야 할까?

type PositionX = {x:number}
type PositionY = {y:number}

타입이 각각 따로 지정된 타입변수의 경우 새로운 변수에 &를 넣어 사용 해줄 수 있다.

type PositionAll = PositionX & PositionY; // {x:number,y:number}

사용해보기

const position:PositionAll ={x:10,y:20}

이렇게 &연산자를 활용해 합쳐 사용 할 수 있다.


4. type alias 간단한 예시 문제 풀어보기

  1. object자료를 다룰 잃이 많다.
    {name:'kim', phone:123, email:'123@naver.com'}
  2. object안에 있는 이름,전화번호,이메일 속성을 옳은 타입인지 검사하는 type alias를 만들어보자

.
.
정답

type Check = {name:string, phone:number, email:string}
const 검사:Check = {name:'kim',phone:123}

0개의 댓글