Type aliases

type Combinable = number | string; type ConversionDescriptor = 'as-number' | 'as-text';
type aliasesλŠ” 일반적으둜 union으둜 μ‚¬μš©λœλ‹€.
function combine( input1: Combinable, input2: Combinable, resultConversion: ConversionDescriptor ) { let result; if (typeof input1 === 'number' && typeof input2 === 'number' || resultConversion === 'as-number') { result = +input1 + +input2; } else { result = input1.toString() + input2.toString(); } return result; // if (resultConversion === 'as-number') { // return +result; // } else { // return result.toString(); // } }

νƒ€μž… 별칭(Type Alias)

νƒ€μž… 별칭(type alias)을 μ΄μš©ν•΄ 이미 μ‘΄μž¬ν•˜λŠ” νƒ€μž…μ— λ‹€λ₯Έ 이름을 λΆ™μ—¬ λ³΅μž‘ν•œ νƒ€μž…μ„ κ°„λ‹¨ν•˜κ²Œ μ“Έ 수 μžˆλ‹€. λ˜ν•œ, ν”„λ‘œκ·Έλž˜λ¨Έμ˜ μ˜λ„λ₯Ό 보닀 λͺ…ν™•ν•˜κ²Œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

νƒ€μž… 별칭 μ •μ˜

// type NewType = Type; type UUID = string; type Height = number; type AnotherUUID = UUID; type Animals = Animal[]; type User = { name: string; height: number; };
이 λ•Œ 별칭은 λ‹¨μˆœνžˆ μƒˆλ‘œμš΄ 이름을 뢙일 뿐이고, μ‹€μ œλ‘œ μƒˆλ‘œμš΄ νƒ€μž…μ΄ μƒμ„±λ˜λŠ” 것은 μ•„λ‹ˆλΌλŠ” 점에 μœ μ˜ν•˜λΌ. 예λ₯Ό λ“€μ–΄, μ•„λž˜μ™€ 같은 μ½”λ“œμ˜ μ—λŸ¬ λ©”μ‹œμ§€μ—λŠ” UUID λŒ€μ‹  string 이 μ‚¬μš©λœλ‹€.
type UUID = string; function getUser(uuid: UUID) { /* ν•¨μˆ˜ λ³Έλ¬Έ */ } getUser(7); // error TS2345: Argument of type '7' is not assignable to parameter of type 'string'.
Β