Typescript๋ž€?

โ˜๏ธ yeyoยท2022๋…„ 4์›” 4์ผ
0

Typescript

๋ชฉ๋ก ๋ณด๊ธฐ
1/2
post-thumbnail

Typescript ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

Javascript๋Š” Java ๊ณ„์—ด์˜ ๋ฌธ๋ฒ•์„ ์ฐจ์šฉํ•˜๋ฉด์„œ๋„ type์ด๋‚˜ class ๊ฐ™์ด ๋ณต์žก์„ฑ์„ ์•ผ๊ธฐํ•˜๋Š” ๋ถ€๋ถ„๋“ค์„ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ๊ฐ„๊ฒฐํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๋Š” prototype ๊ฐ์ฒด ๊ธฐ๋ฐ˜ ํ•จ์ˆ˜ํ˜• ๋™์  ํƒ€์ž… ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํƒ€์ž…์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ๋ฒ•์ด ๋‹จ์ˆœํ•˜๊ณ  ์œ ์—ฐํ•œ ์ฒด๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ ์€ ๋Œ€๊ทœ๋ชจ ํ˜‘์—…์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์•˜๊ณ , ๋นŒ๋“œ ์ „์— ๋ฏธ๋ฆฌ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ์ •์  ํƒ€์ž… ์–ธ์–ด์˜ ์žฅ์ ์ด ๊ฒฐํ•ฉ๋œ Typescript๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

Javascript๋Š” ES4(ECMAScript4) ์—์„œ Typescript์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ •์  ํƒ€์ดํ•‘, ์ธํ„ฐํŽ˜์ด์Šค, ์ œ๋„ค๋ฆญ ๋“ฑ์˜ ๊ฐœ๋…์„ ๋„์ž…ํ–ˆ์—ˆ์œผ๋‚˜ ๊ธฐ์กด javascript์˜ ์ฒด๊ณ„๋ฅผ ์ •์  ํƒ€์ž… ๊ธฐ๋ฐ˜ ์–ธ์–ด ์ฒด๊ณ„๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋งŽ์€ ๋ณ€ํ™”์™€ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ์œ ์ง€์˜ ์–ด๋ ค์›€ ๋•Œ๋ฌธ์— ํ๊ธฐ๋˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

Javascript์˜ ๋ฌธ์ œ์  ์˜ˆ์‹œ

1) ํ˜•๋ณ€ํ™˜ ๋ฌธ์ œ

if ("" == 0) {
  // ์ฐธ
}

== ์—ฐ์‚ฐ์—์„œ ""๋Š” falsyํ•œ ๊ฐ’(ex: false, '', null, undefined, 0, NaN ๋“ฑ)์ด๋ฏ€๋กœ false๋กœ ์ทจ๊ธ‰๋˜๋ฉฐ, false๋Š” number ํ˜•๊ณผ ๋น„๊ต ์‹œ 0์œผ๋กœ ํ˜•๋ณ€ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— "" == 0 ์กฐ๊ฑด๋ฌธ์˜ ๊ฒฐ๊ณผ๋Š” true์ด๋‹ค.

if (1 < x < 3) {
  // ํ•ญ์ƒ ์ฐธ์ด๋‹ค.
}

์œ„์˜ ์กฐ๊ฑด๋ฌธ์€ (1 < x) < 3 ์œผ๋กœ ์—ฐ์‚ฐ๋˜๋Š”๋ฐ, ์˜ˆ๋ฅผ ๋“ค์–ด 1 < x ๊ฒฐ๊ณผ๊ฐ€ true์ผ ๊ฒฝ์šฐ true < 3 ์„ ์ฒดํฌํ•ด์•ผ ํ•˜๊ณ , ์ด ๋•Œ boolean ํ˜•์˜ ๊ฐ’์„ number ๊ฐ’๊ณผ ๋น„๊ตํ•  ๊ฒฝ์šฐ true๋Š” 1, false๋Š” 0์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ๊ณ„์‚ฐ๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— x๊ฐ€ ์–ด๋–ค ๊ฐ’์ด๋”๋ผ๋„ boolean ํ˜•์€ 1๋˜๋Š” 0์˜ ์ˆซ์ž๋กœ ๋ณ€ํ™˜๋˜์–ด ์œ„์˜ ์กฐ๊ฑด๋ฌธ์€ ํ•ญ์ƒ ์ฐธ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๊ฒƒ์ด๋‹ค.

2) ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํผํ‹ฐ์˜ ์ ‘๊ทผ ํ—ˆ์šฉ

const obj = { width: 10, height: 15 };
const area = obj.width * obj.heigth; //์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๊ณ  NaN๋ฐ˜ํ™˜

Typescript๋ž€

Typescript๋ž€ Javascript ๊ธฐ๋ฐ˜์˜ ์ •์  ํƒ€์ž… ์–ธ์–ด๋กœ์„œ, JS ๊ตฌ๋ฌธ์ด ํ—ˆ์šฉ๋˜๋Š” Javascript์˜ ์ƒ์œ„ ์ง‘ํ•ฉ(superset) ์–ธ์–ด์ด๋ฉฐ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์ „์— ํƒ€์ž…์„ ๊ฒ€์‚ฌํ•˜๋Š” ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ์ž์ด๋‹ค.

* ์ •์  ๊ฒ€์‚ฌ : ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค์ง€ ์•Š๊ณ  ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ถœํ•˜๋Š” ๊ฒ€์‚ฌ
* ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ : ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์ „์— ๊ฐ’์˜ ์ข…๋ฅ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ถœ.

Typescript ์žฅ์ 

1) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค์™€์˜ ํ˜ธํ™˜

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ƒ์œ„ ์ง‘ํ•ฉ ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค์™€ ํ˜ธํ™˜๋˜๋ฉฐ ๊ธฐ์กด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ์ด ์ ๊ฒŒ ๋“ ๋‹ค.

2) ๋ฒ„๊ทธ ์˜ˆ๋ฐฉ

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ •์  ํƒ€์ž… ์‹œ์Šคํ…œ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ธฐ ์ด์ „์— ์ƒ๋‹น์ˆ˜์˜ ์˜ค๋ฅ˜๋ฅผ ์žก์•„๋‚ด์–ด ๋ฒ„๊ทธ๋ฅผ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค.

3) ์ฝ”๋“œ ๊ฐ€๋…์„ฑ ๋ฐ ์ดํ•ด๋„ ํ–ฅ์ƒ

๋ช…์‹œ์ ์ธ ํƒ€์ž… ์ง€์ •์„ ํ†ตํ•ด์„œ ์ฝ”๋“œ์˜ ์˜๋„๋ฅผ ์ข€ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ ๋ฐ ์ดํ•ด๋„๊ฐ€ ํ–ฅ์ƒ๋œ๋‹ค.

4) IDE์˜ ์ง€์›

์ •์  ํƒ€์ž… ๋ถ„์„์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ํƒ€์ž… ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜์—ฌ IDE๋Š” ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ ๋“ฑ์˜ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ง€์›ํ•œ๋‹ค. ํŠนํžˆ Visual Studio Code์™€ Typescript๋Š” ๋ชจ๋‘ Microsoft์—์„œ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— VS Code์—์„œ Typescript ๊ฐœ๋ฐœ์ด ๋”์šฑ ์šฉ์ดํ•˜๋‹ค.

์ฐธ๊ณ 
wishket/ํ…Œ์˜ค์˜ ํ”„๋ก ํŠธ์—”๋“œ - TypeScript๋Š” ์–ด๋–ป๊ฒŒ ๊ณต๋ถ€ํ•ด์•ผ ํ•˜๋‚˜์š”?
Typescript handbook
mdn web docs - JavaScript์— ๋Œ€ํ•˜์—ฌ
ts-for-jsdev
JavaScript VS TypeScript
Typescript์˜ ์‚ฌ์šฉ๋ชฉ์  ๋ฐ ์žฅ์ 

profile
๐Ÿ‹ https://ye-yo.github.io/ ๋กœ ๋ธ”๋กœ๊ทธ ์ด์ „ํ–ˆ์Šต๋‹ˆ๋‹ค

0๊ฐœ์˜ ๋Œ“๊ธ€