๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

JavaScript/TypeScript3

TypeScript๋ž€? ๐ŸŒ€ TypeScript ๋ž€? JavaScript + Type = TypeScript ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ตฌํ˜„ํ•œ JavaScript์˜ ์ƒ์œ„ ํ™•์žฅ(Superset) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๋ฐœํ‘œํ•œ ์˜คํ”ˆ ์†Œ์Šค ES6์˜ Class, module ๋“ฑ๊ณผ ES7์˜ Decorator ๋“ฑ์„ ์ง€์› ํ™•์žฅ์ž๋กœ๋Š” .ts๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ปดํŒŒ์ผ์˜ ๊ฒฐ๊ณผ๋ฌผ๋กœ JavaScript ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ตœ์ข…์ ์œผ๋กœ runtime์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์ถœ๋ ฅ๋œ JavaScript ์ฝ”๋“œ๋ฅผ ๊ตฌ๋™์‹œํ‚จ๋‹ค. ๐ŸŒ€ TypeScript์˜ ํŠน์ง• ์ •์  ํƒ€์ž…์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด Vanilla Javascript์™€์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์ด๋‹ค. ์ฆ‰, 'JavaScript๋ฅผ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์žˆ์„๋งŒํ•œ type ERROR๋“ค์„ ๋ฏธ๋ฆฌ ์žก๋Š” ๊ฒƒ' ์ด Typescript.. 2021. 11. 15.
๋˜๋„๋ก์ด๋ฉด ์“ฐ์ง€ ๋ง์•„์•ผ ํ• ? type ๐Ÿ’ฉ null null์€ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. let person: null; ๐Ÿ‘Ž๐Ÿป let person2: string | null; ๐Ÿ‘๐Ÿป ๐Ÿ’ฉ unknown unknown = ์•Œ ์ˆ˜ ์—†๋Š” unknown์œผ๋กœ ์ง€์ •์„ ํ•˜๋ฉด ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธธ์ง€ ์•Œ ์ˆ˜ ์—†๋Š” type์ด ๋œ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. let notSure: unknown = 0; notSure = 'he'; notSure = true; unknown์€ type์ด ์—†๋Š” JavaScript์™€ ์—ฐ๋™์„ ํ•ด์„œ ์“ธ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐ€๋Šฅํ•˜๋ฉด type์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์ง€์ •ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค! ๐Ÿ’ฉ any ๊ฐ€๋Šฅํ•˜๋ฉด ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. unknown์€ ์–ด๋–ค type์„ ์‚ฌ์šฉํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด ใ… ใ…  ๋ผ๋Š” ๋œป์ด์–ด์„œ ๊ฒธ์†ํ•˜๊ธฐ๋ผ๋„ํ•˜์ง€ any.. 2021. 11. 15.
Type Alias ๐ŸฅŠ Type Alias๋ž€? ํƒ€์ž…์— ์ง์ ‘ ์ด๋ฆ„์„ ๋ช…๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ. ์ฆ‰, ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ. ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์œ ์‚ฌํ•˜๋‹ค. Type Alias๋Š” ์›์‹œ๊ฐ’, union ํƒ€์ž…, tuple ๋“ฑ๋„ ํƒ€์ž…์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค์ฒ˜๋Ÿผ extends ๋˜๋Š” implements ๋  ์ˆ˜๋Š” ์—†๋‹ค. ex) type Person = { name: string; age: number; }; const person: Person = { name: 'yunkyung', age: 20, }; 2021. 11. 15.
๋ฐ˜์‘ํ˜•