
Generics 2๏ธโฃ Keyof Constraint ์ ๋ค๋ฆญ์ผ๋ก ๊ฐ์ฒด์ ๋ํ ์ ์ฝ ์กฐ๊ฑด์ ์ค ๋, ํค ๊ฐ์ ํ์๋ก ํ๋ค๋ฉด keyof๋ฅผ ์ฌ์ฉํ ์ ์ฝ ์กฐ๊ฑด์ ์ฐ๋ฉด ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์๋ค. function extractAndConvert( obj: T, key: U ) { return 'Value: ' + obj[key]; } extractAndConvert({}, 'name'); // Error occurred ์ ๋ค๋ฆญ T์ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก object๋ฅผ ์ค์ ํด์ฃผ์๊ณ , U์ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก T์ key๋ฅผ ์ค์ ํด์ฃผ์๋ค. extractAndConvert๋ก ๋น ๊ฐ์ฒด({})์ name์ด๋ผ๋ ๋ฌธ์์ด์ ์ ๋ฌํ์ ๋, ๋น ๊ฐ์ฒด์๋ name์ด๋ผ๋ ํค ๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋๋ค! ์ ๋ค๋ฆญ์ผ๋ก U extends keyof..

Generics 1๏ธโฃ What is Generics? ์ ๋ค๋ฆญ์ vanilla JavaScript์๋ ์๊ณ TypeScript์๋ง ์๋ ๊ฐ๋ ์ผ๋ก, ํน์ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ํ์ ์์ ์ฑ์ ํ๋ณดํ ์ ์๋ ๊ธฐ๋ฒ์ด๋ค. TypeScript์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ์ ๋ค๋ฆญ ํ์ ์ผ๋ก๋ Array, Promise๊ฐ ์๋ค. // Array const names: Array = []; /* Array์ ๋ํ ํ์ ์ string์ผ๋ก ์ง์ ํ๋ฉด(= Generic) ์์ผ๋ก names ๋ฐฐ์ด์ ๋ค์ด์ฌ ๋ฐ์ดํฐ์ ํ์ ์ด string์์ ์ถ๋ก ํจ */ // Promise const promise: Promise = new Promise((resolve, reject) => { setTimeout(() => { resolve(10); ..