-
type alias란.typescript 2022. 1. 17. 20:39
1)
객체의 타입을 지정할 때
이렇게 객체 선언과 할당 시 타입을 함께 써서 해당 객체의 타입을 지정해줄 수 있지만
이렇게도 가능하다.
즉, Animal이라는 타입을 먼저 리터럴로 지정하는것인데,
이것을 타입 alias라고한다.
그리고 이 타입 alias를 변수 선언 시 식별자 오른쪽에 지정해줄 수 있다.
또한 alias 작성 시 이름의 첫 글자는 대문자로 하는것이 일반적이다.
2)
alias를 만들어줄 때 수정을 허용해주기싫은 프로퍼티에
readonly라는 속성을 넣어줄 수 있는데,
이러면 ts파일 안에서는 readonly 속성이 들어간 프로퍼티를 수정할 때 에러를 감지해줄 수 있다.
다만 실제 구동되는 js파일에서는 막지못한다.
3)
함수의 파라미터가 옵션의 속성을 가질 경우 ?를 쓸 수 있다고 했는데,
객체 프로퍼티 역시 옵션일 때 ?를 사용할 수 있다.
그렇다면 옵션 프로퍼티에 값이 지정되지않았을 경우
역시 undefined가 value로 할당된다.
즉, color?: string은 color: string | undefined와 같다.
그리고 저 '네모2'라는 객체의 color는 undefined가 된다.
4)
alias로 지정한 타입 역시 union 타입으로 만들어주거나
타입을 합칠 수도 있다.
union 타입을 생성할 때는 | 기호를 사용하지만,
타입을 합칠 때는
& 기호를 사용한다.
&는 intersection type.
즉, 교집합 타입이라는 뜻인데,
양 옆의 타입 모두 만족하도록 요구하는 타입인것이다.
union타입과 대조되는 기능을 갖고있으며,
intersection type, union type 모두 if 연산자와 비슷하지만 기호를 두 개 쓰지않고 하나만 사용한다.
그리고 type alias로 만들어준 타입은
const 변수처럼 같은 이름으로 재선언, 재정의가 불가능하다.
알아두자.
'typescript' 카테고리의 다른 글
함수와 메소드에 type alias 붙이기. (0) 2022.01.17 literal types로 타입 지정해보자. (0) 2022.01.17 narrowing과 assertion이란. (0) 2022.01.17 typescript의 함수에 대하여. (0) 2022.01.17 any, unknown 타입과 타스의 엄격함. (0) 2022.01.17