πŸ“ƒ Front-End/TypeScript

πŸ“ƒ Front-End/TypeScript

Union Type ( μœ λ‹ˆμ˜¨ νƒ€μž… ) κ³Ό Intersection Type

νŒŒλΌλ―Έν„° λ˜λŠ” λ³€μˆ˜μ— ν•˜λ‚˜μ˜ νƒ€μž… 이상을 μ‚¬μš©ν•  수 있게 ν•΄μ£ΌλŠ” 것 μž…λ‹ˆλ‹€. Union Type μ˜ˆμ‹œ function logMessage(value: string){ console.log(value) } logMessage('hello'); logMessage(100); // number νƒ€μž…μ΄ λ“€μ–΄μ˜€κΈ°μ— 였λ₯˜ // 숫자λ₯Ό ν¬ν•¨μ‹œν‚€κ³  μ‹ΆμœΌλ©΄ string -> any 둜 λ°”κΎΈλ©΄ λœλ‹€.

πŸ“ƒ Front-End/TypeScript

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

νƒ€μž… 별칭은 νŠΉμ • νƒ€μž…μ΄λ‚˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ°Έμ‘°ν•  수 μžˆλŠ” νƒ€μž… λ³€μˆ˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. βœ” μ‚¬μš©ν•˜λŠ” 방법 // string νƒ€μž…μ„ μ‚¬μš©ν•  λ•Œ const name: string = 'capt'; // νƒ€μž… 별칭을 μ‚¬μš©ν•  λ•Œ type MyName = string; const name: MyName = 'capt'; βœ” νƒ€μž… λ³„μΉ­μ˜ νŠΉμ§• ( μΈν„°νŽ˜μ΄μŠ€μ™€ 비ꡐ ) interface Person{ name: string; age: number; } type Person = { name: string; age: number; } let seho: Person ={ name: 'μ„Έν˜Έ', age: 30 } νƒ€μž… 별칭은 μƒˆλ‘œμš΄ νƒ€μž… 값을 ν•˜λ‚˜ μƒμ„±ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μ •μ˜ν•œ νƒ€μž…μ— λŒ€ν•΄ λ‚˜μ€‘μ— μ‰½κ²Œ μ°Έκ³ ν•  수 있게 이름을 λΆ€μ—¬ν•˜λŠ”..

πŸ“ƒ Front-End/TypeScript

Interface ( μΈν„°νŽ˜μ΄μŠ€ )

μΈν„°νŽ˜μ΄μŠ€λŠ” μƒν˜Έ 간에 μ •μ˜ν•œ 약속 ν˜Ήμ€ κ·œμΉ™μ„ μ˜λ―Έν•©λ‹ˆλ‹€. νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ λ°˜λ³΅λ˜λŠ” νƒ€μž…λ“€μ„ λͺ¨μ•„μ„œ ν•˜λ‚˜μ˜ μΈν„°νŽ˜μ΄μŠ€λ‘œ μ •μ˜λ₯Ό ν•˜μ—¬ μ‚¬μš© ν•©λ‹ˆλ‹€. βœ” λ³€μˆ˜μ— ν™œμš©ν•œ μΈν„°νŽ˜μ΄μŠ€ μ‚¬μš©ν•  λ•Œ λ°˜λ“œμ‹œ μΈν„°νŽ˜μ΄μŠ€μ— μžˆλŠ” 속성을 μ •μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. // μΈν„°νŽ˜μ΄μŠ€ μ„ μ–Έ interface User { age: number; name: string; } let hyunho: User = { age: 26, name: 'ν˜„ν˜Έ' } βœ” ν•¨μˆ˜μ— ν™œμš©ν•œ μΈν„°νŽ˜μ΄μŠ€ μΈμžμ— μΈν„°νŽ˜μ΄μŠ€λ₯Ό 적용 -> νŠΉμ • ν˜•μ‹μ„ μ€€μˆ˜ν•˜λŠ” λ°μ΄ν„°λ§Œ λ°›κ² λ‹€κ³  μ •μ˜ ν•©λ‹ˆλ‹€. interface User { age: number; name: string; } function getUser(user: User){ console.log(user); } cons..

πŸ“ƒ Front-End/TypeScript

νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ ν•¨μˆ˜

βœ” ν•¨μˆ˜μ˜ νŒŒλΌλ―Έν„°(λ§€κ°œλ³€μˆ˜) νƒ€μž… function sum(a: number, b: number){ return a + b; } sum(10,20); βœ” ν•¨μˆ˜μ˜ λ°˜ν™˜ κ°’ 에 νƒ€μž…μ„ μ •μ˜ν•˜λŠ” 방식 function add(): number{ return 10; } βœ” ν•¨μˆ˜μ˜ 기본적인 νƒ€μž… μ„ μ–Έ // JS function sum(a, b) { return a + b; } // TS function sum(a: number, b: number): number { return a + b; } βœ” ν•¨μˆ˜μ˜ μ˜΅μ…”λ„ νŒŒλΌλ―Έν„° (선택적 νŒŒλΌλ―Έν„°) νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” ν•¨μˆ˜μ˜ 인자λ₯Ό λͺ¨λ‘ ν•„μˆ˜ κ°’μœΌλ‘œ κ°„μ£Όν•©λ‹ˆλ‹€. 즉, μ •μ˜λœ λ§€κ°œλ³€μˆ˜ κ°’λ§Œ 받을 수 있고 μΆ”κ°€λ‘œ 인자λ₯Ό 받을 수 μ—†λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ ν•„μš”μ— λ”°λΌμ„œ μ„ νƒμ μœΌλ‘œ..

πŸ“ƒ Front-End/TypeScript

νƒ€μž…μŠ€ν¬λ¦½νŠΈ κΈ°λ³Έ νƒ€μž…

νƒ€μž…μŠ€ν¬λ¦½νŠΈλ‘œ λ³€μˆ˜λ‚˜ ν•¨μˆ˜μ™€ 같은 μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ— νƒ€μž…μ„ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. βœ” νƒ€μž… ν‘œκΈ°(Type Annotation) : λ₯Ό μ΄μš©ν•˜μ—¬ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ— νƒ€μž…μ„ μ •μ˜ν•˜λŠ” 방식 βœ” String // κΈ°λ³Έ JS μ„ μ–Έ const str = 'hello'; // TS λ¬Έμžμ—΄ μ„ μ–Έ const str: string = 'hello'; βœ” Number let num: number = 10; βœ” Array let arr: Array = [1,2,3]; let heroes: Array = ['captin','thor','hulk'] // 숫자λ₯Ό λ„£μœΌλ©΄ μ—λŸ¬ let items : number[] = [1,2,3]; βœ” Tuple λ°°μ—΄μ˜ 길이가 κ³ μ •λ˜κ³  각 μš”μ†Œμ˜ νƒ€μž…μ΄ μ§€μ •λ˜μ–΄ μžˆλŠ” λ°°μ—΄ ν˜•μ‹ μž…λ‹ˆλ‹€. let a..

πŸ“ƒ Front-End/TypeScript

TypeScript

νƒ€μž…μŠ€ν¬λ¦½νŠΈλž€ ❓ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ ν™•μž₯된 언어라고 λ³Ό 수 있으며, μžλ°”μŠ€ν¬λ¦½νŠΈμ— νƒ€μž…μ„ λΆ€μ—¬ν•œ μ–Έμ–΄ μž…λ‹ˆλ‹€. λΈŒλΌμš°μ €μ—μ„œλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‹€ν–‰ ν•  수 μ—†κΈ° λ•Œλ¬Έμ— 컴파일(complile) 과정을 거쳐야 ν•©λ‹ˆλ‹€. TypeScript vs JavaScript ❓ TypeScript JavaScript λ™μ νƒ€μž… μ–Έμ–΄ μ •μ νƒ€μž… μ–Έμ–΄ 인터프리터 μ–Έμ–΄ 컴파일 μ–Έμ–΄ μžλ°”μŠ€ν¬λ¦½νŠΈμ— μ˜μ‘΄μ μž„ λ…λ¦½μ μœΌλ‘œ μ‚¬μš© κ°€λŠ₯ 더 λ‚˜μ€ ꡬ쑰와 간결함, 일관성, μž¬μ‚¬μš©μ„± μ’€ 더 μœ μ—°ν•¨ (νƒ€μž…μ— μ œν•œμ„ 받지 μ•ŠμœΌλ―€λ‘œ) .ts ν™•μž₯자 .js ν™•μž₯자 λ³΅μž‘ν•œ ν”„λ‘œμ νŠΈμ— 적합함 μž‘κ³  κ°„λ‹¨ν•œ ν”„λ‘œμ νŠΈμ— 적합함 νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ“°λŠ” 이유 ❓ βœ” μ—λŸ¬μ˜ 사전 방지 // math.js function sum(a, b) { return a + b; } // ..

HoHo.dev
'πŸ“ƒ Front-End/TypeScript' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘ (2 Page)