본문 바로가기
typescript

type 키워드 파헤치기

by 왜 안되지 2022. 6. 10.

Type Alias (타입 별칭)

코드를 짜다보면 매우 길고 복잡하게 타입을 나열하게 될때가 있음.

예를들면,

이렇게 길고 복잡하게 쓰게되면 나중에 내가 다시 보거나 다른 사람이 보기에 가독성이 떨어질수 있음.

 

이거대신 ,

이렇게 타입을 변수 생성하듯이 생성해서 부여해주면 ,

1. 가독성이 높아짐,

2. 만들어둔 타입을 재사용 할 수 있음.

 

일반 자바스크립트 변수랑 헷갈리지 않기 위해 보통 관습적으로

1. 대문자로 시작한다.

2. Type 을 붙인다.

 

- readonly 키워드

object 자료형은 const 키워드로 만들어도 프로퍼티 변경이 가능한데 

이유는 const 는 재할당을 막아줄 뿐이지(참조주소 변경 방지) 그 안에 있는 프로퍼티 변경에 대해선 관여하지 않기 때문.

 

object 속성을 변경할때 에러를 띄워주고 싶다면 readonly 를 쓸수 있음.

이렇게 readonly 키워드를 붙인 프로퍼티에 대해서는 에러를 띄워주는데 js 파일로 컴파일 해도 해주긴함.

근데 어쨋든 의도에맞게 에러를 띄어주기때문에 작성 단계에서 오류를 찝어내기 쌉가능

 

 

-type 키워드 합치기

1. or 연산자

or 연산자 ( | ) 를 이용해서 union type 을 만들수도 있음.

NameAndAgeType 에다가 마우스 올려보면 string | number 타입이라고 나옴.

 

 

2. and 연산자

 

object 자료형에 지정한 타입일 경우 & 기호로 합치면 object 안에 두개의 속성을 합쳐줌.

"extend 한다."라고함.

Type & Type 뿐만 아니라

Type & { age: number } 이런것도 됨.

 

type 키워드는 재정의 불가능

interface 키워드는 재정의가 가능하지만 

interface 키워드에서 재정의 하면 type 키워드의 & 랑 똑같은 기능을 하게 됨.

 

 

댓글