리터럴타입
js에서는 const는 변하지 않는 값을 선언할 때, let은 변할 수 있는 값을 선언할 때 사용합니다.
겉보기에는 js와 별차이가 없어보이는데 마우스를 변수에 올려 확인해보면 userName1은 const이기 때문에 변하지 않습니다. 그렇기 때문에 userName1의 타입은 우리가 넣어준 "Bob"이 들어가고 userName2는 let이기 때문에 변할 수 있습니다. 그래서 string이 됩니다.
여기서 userName2에 다른 타입의 값을 넣고 싶다면 그 값의 타입을 명시해주어야 합니다.
그리고 여기서 userName1처럼 변하지 않는 값을 가진 변수의 타입을 문자열 리터럴 타입이라고 부릅니다.
앞에 배운것중 enum키워드가 있는데, 문자열리터럴 타입과 type키워드를 이용하면 이와 비슷한 형태를 구현할 수 있습니다. enum은 아래와 같이 사용되었습니다.
Os라는 type 형태의 변수를 만들고 그 안에 문자열 리터럴들을 넣어줍니다.
이렇게 만든 타입을 사용하면 이 타입의 변수는 반드시 해당 문자열 리터럴에 들어있는 값만 사용할 수 있게 됩니다.
아래 computer.os에는 'window', 'ios', 'android'만 들어갈 수 있습니다.
숫자형 리터럴 타입도 사용할 수 있습니다.
여기서 ' | ' 유니온 타입이 사용되는데 깊게 알아보겠습니다.
유니온 타입
아래처럼 확정적이지 않은 상태에서는 둘 중 하나의 타입에만 사용할 수 있는 변수 혹은 메소드는 그대로 사용할 수 없습니다.
이를 방지하기 위해 식별가능한 유니온 타입을 사용합니다.
즉 if-else문을 사용합니다.
교차타입
여러개의 타입을 하나로 합쳐서 사용하는 타입을 교차타입 이라고 부릅니다.
AND, 교집합 이라고 부를 수 있고 &기호를 사용합니다.
Toy와 Car타입을 모두 가진 toyCar라는 객체를 하나 생성합니다.
정상적으로 toyCar객체를 생성하기 위해서는 Car와 Toy에 있는 모든변수/메서드를 담아주어야 합니다.
'프론트엔드 > typescript' 카테고리의 다른 글
타입스크립트 - 제네릭 (0) | 2023.10.25 |
---|---|
타입스크립트 - 클래스 (0) | 2023.10.23 |
타입스크립트 - 함수 (0) | 2023.10.23 |
타입스크립트 - 인터페이스(Interface) (1) | 2023.10.22 |
타입스크립트 - 기본타입 (0) | 2023.10.22 |