1. Union Type
: 하나의 변수에 여러 타입을 지정할 수 있다
변수명: 타입 | 타입
OR 연산자와 유사하다 = A 또는 B 다
let member: number | string = 123
//or
let member: (number | string) = 123
- number에는 숫자나 문자열 타입 모두 올 수 있다
- 값을 할당하는 순간 string 또는 number 중 하나로 타입이 결정된다
1-1. Array
괄호 필수
let member: (number | string)[] = [1, "hi", 3]
괄호가 없으면,
let member: number | string[] = [1, "hi", 3]
number 또는 [string array] 라는 뜻이 된다
1-2. Object
let member: { a: string | number } = { a: 123 }
✅ 유니온 타입은 새로운 타입을 만드는 것이다
let age: string | number
age + 1
//에러 발생
string + 1(가능)
number + 1(가능)
string | number + 1(불가능)
새로운 타입이기 때문에 수학 연산이 불가능하다
2. Any Type
: 모든 타입을 허용한다
변수명: any
let member: any
member = 1
member = "hi"
member = {}
✅ any를 사용하면 타입스크립트 쓸 이유가 없다. 비상시를 제외하고는 사용하지 말자
3. Unknown Type
: (최신 버전) 모든 타입을 허용한다. 유사 any지만, 조금 더 안전하다
변수명: unknown
let member: unknown
member = 1
member = "hi"
member = {}
✅ unknown 이 any 보다 안전한 이유
any 일 때는 에러가 나지 않는데,
let member: any
member = 1
member = "hi"
member = {}
let a :string = member
unknown 일 때는 에러가 난다
let member: unknown
member = 1
member = "hi"
member = {}
let a :string = member
+ 간단한 수학 연산에도 차이가 있다
let member: any
member - 1
//에러 없음
let member: unknown
member - 1
//에러 발생
Ref
https://codingapple.com/course/typescript-crash-course/
빠르게 마스터하는 타입스크립트 - 코딩애플 온라인 강좌
누구나 마음 한켠엔 나만의 웹서비스를 만들고 싶어합니다. 프론트엔드는 어찌저찌 하겠는데 서버 만드는게 어렵고 귀찮다고요? 그렇다면 Firebase를 쓰십시오. 구글이 웹서버를 대신 만들어
codingapple.com
'TypeScript' 카테고리의 다른 글
[TypeScript] Type Alias, readonly, extend (0) | 2022.02.16 |
---|---|
[TypeScript] Narrowing, Assertion (1) | 2022.02.16 |
[TypeScript] 함수 타입 지정 + void (0) | 2022.02.15 |
[TypeScript] Primitive Types (0) | 2022.02.14 |
TypeScript란? (2) | 2022.02.14 |