반응형
타입 별칭
let, const, var로 변수를 선언해서 값 대신 변수로 칭하듯이 타입 별칭으로 타입을 가리킬 수 있습니다.
type Age = number
type Person = {
name: string
age: Age
}
Age는 number입니다.
타입 별칭을 이용하면 Person의 형태를 조금 더 이해하기 쉽게 정의할 수 있습니다. 그러나 TypeScript는 별칭을 추론하진 않으므로 반드시 별칭의 타입을 명시적으로 정의해야 합니다.
let age: Age = 24
let girl: Person = {
name: 'Cozy Linda',
age: age
}
Age는 number의 별칭이므로 number에도 할당할 수 있습니다. 따라서 코드를 아래처럼 바꿀 수 있습니다.
let age = 24
let girl: Person = {
name: 'Cozy Linda',
age: age
}
타입 별칭은 프로그램의 논리에 영향을 미치지 않고 별칭을 가리키는 타입으로 대체할 수 있습니다.
그러나 JavaScript 변수 선언(let, const, var)과 마찬가지로 하나의 타입을 두 번 정의할 수는 없습니다.
type Color = 'pink'
type Color = 'red' // error TS2300: 'Color' 식별자를 중복으로 정의함
let과 const처럼 타입 별칭도 블록 영역에 적용됩니다.
모든 블록과 함수는 자신만의 영역을 가지므로 내부에 정의한 타입 별칭이 외부의 정의를 덮어씁니다.(shadowing)
type Color = 'pink'
let x = Math.random() < 6
if (x) {
type Color = 'red' // 위의 Color 정의를 덮어씀
let b: Color = 'red'
} else {
let c: Color = 'pink'
}
정리
타입 별칭은 복잡한 타입을 DRY(Don't Repeat Yourself) 하지 않도록 해주며, 변수가 어떤 목적으로 사용되었는지 쉽게 이해할 수 있게 도와줍니다.
값을 변수로 할당할지를 결정하는 것과 같은 기준으로 타입 별칭을 사용할지 여부를 결정할 수 있습니다:)
반응형
'👶 TypeScript' 카테고리의 다른 글
열거형 (0) | 2023.01.10 |
---|---|
유니온과 인터섹션 타입 (0) | 2023.01.10 |
타입 시스템 (0) | 2023.01.09 |
컴파일러 (0) | 2023.01.09 |
bigint (0) | 2023.01.09 |