#5 TypeScript Blockchain
#5.0 Introduction
ํ์ ์คํฌ๋ฆฝํธ ๋ฐ๋ฐ๋ฅ๋ถํฐ ์ค์ ํ๊ธฐ ! - not TS Playground
#5.1 Targets
make directory >
npm init -y // package.json ์์ฑ
npm install -D typescript // package.json ์ ts ์ถ๊ฐ
make src > make index.ts
make tsconfig.json
tsconfig.json
์ด ํ์ผ์ด ์์ผ๋ฉด vs code๋ ํ์ ์คํฌ๋ฆฝํธ๋ก ์์ ํ๋ค๋ ๊ฒ์ ์ฆ์ ์๊ฒ๋๊ณ , ์๋์์ฑ๊ธฐ๋ฅ ๋ฑ ์ ๊ณตํด์ค
ํจ์๋ฅผ ํ๋ ์ถ๊ฐํ ts ํ์ผ๋ก ํ์ธํด๋ณด์.

index.ts ํ์ผ์๋ hello ๋ผ๋ ํจ์๊ฐ ํ๋ ํฌํจ๋์ด ์๋ค. ์ด ts ํ์ผ์ ์ปดํ์ผํด๋ณด์

tsconfig.json ํ์ผ์ ์์ ๊ฐ์ด ์ค์ ํ๊ณ

package.json ์ script์ build : tsc๋ฅผ ์ถ๊ฐํ๋ค npm run build ๋ฅผ ์คํํ๋ฉด

์ปดํ์ผํ js ํ์ผ์ด ์ค์ ํ ํด๋์ ์ํด์๋ค.
์ ํ์ผ์ ํน์ง์ ๋ณด์. ๋จผ์ , ํ์ดํ ํจ์๊ฐ ์ผ๋ฐ์ ์ธ ํจ์ ์ ์ธ๋ฌธ์ผ๋ก ๋ณ๊ฒฝ๋์๊ณ , const ๊ฐ var ๋ก ์์ ๋์๋ค. ์ด๋์๋ ์คํํ ์ ์๋๋ก ๋ฎ์ ๋ฒ์ ์ js ์ฝ๋๋ก ๋ณ๊ฒฝํ ๊ฒ์ด๋ค !
์ด๋ฅผ tsconfig ์์ ์ํ๋ ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.

์ปดํ์ผ๋ฌ ์ต์ ์์ ํ๊ฒ์ ES6 ๋ก ์ค์ ํ๊ณ build !

์๊น์ ๋ฌ๋ฆฌ ES6์์ ์ฌ์ฉ๊ฐ๋ฅํ const, ํ์ดํ ํจ์๋ก ์ปดํ์ผ ๋๋ค.
์ด์ฒ๋ผ tsconfig.json ์์ ts์ ๊ด๋ จ๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ค์ ํ ์ ์๋ค.
#5.2 Lib Configuration
lib - ํ์ ์คํฌ๋ฆฝํธ์๊ฒ ์ด๋ค API๋ฅผ ์ฌ์ฉํ๊ณ ์ด๋ค ํ๊ฒฝ์์ ์ฝ๋๋ฅผ ์คํํ ์ง ์ง์ ํ๋ ์ญํ . JS๊ฐ ์ด๋์์คํ๋ ์ง๋ฅผ ์๋ ค์ค. ์ค์ ํ์ง ์์ผ๋ฉด default๋ก ["ES5", "ES6", "ES7", "ES2015.Promise"] ๊ฐ ์ค์ ๋จ
ex) "lib" : ["ES6"] ์ผ๋ก ์ค์ ์
๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๋ค๋ ๋ด์ฉ์ด ์๊ธฐ์ TS์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.


lib์ DOM์ ์ถ๊ฐํ๋ฉด ์๋ฌ๋์ฌ๋ผ์ง๋ค.
์ด์ฒ๋ผ lib์ ํ์ ์คํฌ๋ฆฝํธ์๊ฒ ์ด๋ค API๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๊ณ , ์ด๋ค ํ๊ฒฝ์์ ์ฝ๋๋ฅผ ์คํํ ์ง ์๋ ค์ฃผ๋ ์ญํ ์ ํ๋ค. ์ด ์ค์ ์ผ๋ก ์ ๋งx100 ํธ๋ฆฌํ ์๋์์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
#5.3 Declaration Files
์ ์ ํ์ผ - JS ์ฝ๋์ ๋ชจ์์ TS์ ์ค๋ช ํด์ฃผ๋ ํ์ผ.
ex) JS๋ก ๋ง๋ ํจ์ ๋ชจ๋์ TS ์์ ์ฌ์ฉํ๋ คํ ๋

JS์์ ์์ฑํ ํจ์ ๋ชจ๋์ TS์ ๊ฐ์ ธ์ ์ฌ์ฉํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.

ํ์ ์ ์ธ์ ์ฐพ์ ์ ์๋ค๋ ๊ฒ์ธ๋ฐ ์ด๋ TS์๊ฒ myPackage ๋ด ์์๋ค์ ํ์ ์ ์๋ ค์ฃผ์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฅผ ์ํด myPackage.t.ds ํ์ผ์ ์์ฑํด ๋ค์๊ณผ ๊ฐ์ด ํ์ ์ ์ ์ธํด๋ณด์.

๊ทธ๋ฌ๋ฉด TS์์ ํ์ ํ์ธ์ด ๊ฐ๋ฅํด์ง๊ณ ์๋ฌ๊ฐ ์ฌ๋ผ์ง๋ค.


์ด์ฒ๋ผ Declaration Files์ TS ์์ JS ์ฝ๋๋ฅผ ์ฌ์ฉํ ๋ _.d.ts ์ JS์ ๋ชจ์์ ์ ๋ฌํด TS์์ ํ์ ์๋ฌ๋ฅผ ๋ฐฉ์งํ๊ณ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ํ์ผ์ ์๋ฏธํ๋ค.
#5.4 JSDoc
JS ํ์ผ์ TS ์ ๊ฐ์ด ๋ณดํธํ๊ณ ์ถ์๋ JS ์ฒซ ์ค์ ์๋์ ๊ฐ์ด ์ฃผ์์ ์ถ๊ฐํ๋ค.

TS ํ์ผ์ด JS ํ์ผ์ ๊ฒ์ฌํด ์ค๋ฅ๋ฅผ ํ์ธํ๊ณ , ์์ ๊ฐ์ด ์ค๋ฅ๋ฅผ ํ์ฑ์์ผ ๊ฐ๋ฐ์์๊ฒ ์๋ ค์ค๋ค.
๊ทธ ์ค๋ฅ๋ ์๋์ ๊ฐ์ด ์ฃผ์์ผ๋ก ํ์ ์ ์ค์ ํจ์ผ๋ก์จ ์ ๊ฑฐํ ์ ์๋ค.

์ด ๋ฐฉ๋ฒ์ด JSDoc์ผ๋ก ์ฃผ์์ ์ฌ์ฉํด JS ํ์ผ์ type ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ด๋ค.
#5.5 Blocks
๋ธ๋ก์ฒด์ธ ๊ตฌํ ์ด๊ธฐ ์ธํ , TS ํจ์จ์ฑ ์ฒด๊ฐํ๊ธฐ
ts-node - Node.js์ฉ TS ์คํ ์์ง ๋ฐ REPL. ์ฌ์ ์ปดํ์ผ์์ด TS๋ฅผ ์ง์ ์คํํ ์ ์๋ค. nodemon
#5.6 Definitely Typed
ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ง๋ค์ด์ง์ง ์์ ํจํค์ง๋ฅผ ๋ฐ์๋๋ฐ ํ์ ์ ์๊ฐ ์์๋ ์ด๋ป๊ฒ ํด์ผ ํ๋์ง !
DefinitelyTyped
npm์ ์กด์ฌํ๋ ๊ฑฐ์ ๋๋ถ๋ถ์ ํจํค์ง๋ค์ ํ์ ์ด ์ ์๋์ด ์๋ ์ ์ฅ์.
#5.7 Chain
๋ธ๋ก์ฒด์ธ ๋ง๋ค์ด๋ด

Last updated
Was this helpful?