👶 TypeScript

타입 별칭

개발자 린다씨 2023. 1. 9. 18:00
반응형

타입 별칭

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) 하지 않도록 해주며, 변수가 어떤 목적으로 사용되었는지 쉽게 이해할 수 있게 도와줍니다.

 

값을 변수로 할당할지를 결정하는 것과 같은 기준으로 타입 별칭을 사용할지 여부를 결정할 수 있습니다:)

반응형