2. TypeScript
ํค์๋
REPL
TypeScript
ํ์ ์ถ๋ก
Interface vs Type
Union Type vs Intersection Type
Optional Parameter
ํ์
์คํฌ๋ฆฝํธ, ์ ์ฐ๋๊ฐ?
ํธ๋ฆฌํ ์๋์์ฑ
์ค์๊ฐ ์ค๋ฅ๊ฒ์ฌ
REPL
Read-Eval-Print-Loop
์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์ ํ๊ฐํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๋ ์ธํฐ๋ ํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ
ts-node๋ฅผ ์คํํด ํ์ ์คํฌ๋ฆฝํธ REPL ์ฌ์ฉ ๊ฐ๋ฅ
npx ts-node
ํ์
์ถ๋ก
ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฃ์ ๋ค์ ํ์ ์ ๋ช ์
ํ์ ์ ๋ช ์ํ์ง ์์๋ ๊ฐ์ ํตํด ์๋์ผ๋ก ํ์ ์ ๊ฒฐ์ ํด์ฃผ๊ธฐ๋ ํจ
ํ์
์์ํ์
๋ฐฐ์ด
number[] ๋๋ Array<number> ์ ํํ๋ก ์ฌ์ฉ
ํํ
๊ธธ์ด์ ํ์ ์ด ๊ณ ์ ๋ ๋ฐฐ์ด
์์์ ๋ง์ง ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ผ๋ฉด ์๋ฌ ํ์
ํ๊ณ์
push ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์์ ์๊ด์์ด ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ๋์ด๋จ
ํด๊ฒฐ๋ฐฉ์
ํํ ์ ์ธ์์ readonly ์ฌ์ฉ
any
์ด๋ค ๊ฐ์ ํ์ ์ด any์ด๋ฉด ํ์ ๊ฒ์ฌ๋ฅผ ์คํํ์ง ์์
ํจ์
๋งค๊ฐ๋ณ์์ ๋ฆฌํด๊ฐ์ ํ์ ์ ํ๊ธฐํ ์ ์์
๋ฌธ๋งฅ์ ํตํด ์ต๋ช ํจ์์ ํ์ ์ ์ถ๋ก ํ ์ ์๋ค๋ฉด, ์๋์ผ๋ก ํ์ ์ด ๋ถ์ฌ๋จ
๊ฐ์ฒด
Optional parameter
๊ฐ์ฒด์ ์์ฑ์ ์ต์ ํํ๊ฑฐ๋ ํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ต์ ํํ ์ ์์
Union vs. Intersection
๊ธฐ์กด์ ํ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ์๋ก์ด ํ์ ์ ๋ง๋ค ์ ์์
Union Type
์ซ์ ๋๋ ๋ฌธ์๋ฅผ ๋ฐ์ ์ ์๋ ํจ์
์ ๋์ธ์ ์ฌ์ฉํ ๋๋ ํด๋น ์ ๋์ธ ํ์ ์ ๋ชจ๋ ๋ฉค๋ฒ์ ๋ํด ์ ํจํ ์์ ๋ง ํ์ฉ๋จ
string | number ์ ๋์ธ ํ์
์ ๊ฒฝ์ฐ, string ํ์
์๋ง ์ ํจํ ๋ฉ์๋๋ ์ฌ์ฉํ ์ ์์
typeof๋ฅผ ์ด์ฉํด ๋ถ๊ธฐ ์ฒ๋ฆฌ
Intersection Type
์ฌ๋ฌ ํ์ ์ ๋ชจ๋ ๋ง์กฑํ๋ ํ๋์ ํ์
Capt ํ์
์ ์๋์ ๊ฐ์ด ์ ์๋จ
Type vs. Interface
type
๋๊ฐ์ ํ์ ์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ๊ฐ์ฒด, ์ ๋์ธ ํ์ ๋ฑ์ ๋ ๊ฐ๋จํ ์ด๋ฆ์ผ๋ก ๋ถ๋ฅด๊ณ ์ถ์ ๊ฒฝ์ฐ ํ์ ์ ๋ณ์นญ์ ๋ง๋ค ์ ์์
interface
type๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ฒด ํ์
์ ๋ง๋๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ
type๊ณผ interface์ ์ฐจ์ด์
์ธํฐํ์ด์ค๋ ๊ฐ์ฒด์๋ง ์ฌ์ฉ๋๋ฉฐ, ์์ํ์ ์ ์ด๋ฆ์ ๋ถ์ฌํ๋ ๋ฐ๋ ์ฌ์ฉํ ์ ์์
์ธํฐํ์ด์ค๋ extends๋ฅผ ํตํด ํ์ฅ, ํ์
์ ๊ต์งํฉ์ ํตํด ํ์ฅ
์ธํฐํ์ด์ค๋ ์ ํ๋๋ฅผ ์ถ๊ฐํ ์ ์์ง๋ง, ํ์ ์ ์์ฑํ ๋ค ๋ฌ๋ผ์ง ์ ์์
Last updated