์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์์คํ ์ ๋ถ์ด๋ ์ํผ์ ์ธ์ด
Interface๊ฐ type์ subset์ด๋ผ ๋ณด๋ ๊ฒ์ด ํ์ฌ์ ๋ด ์๊ฐ์ด๋ค.
interface๋ ํญ์ ํน์ ํ ํํ๋ฅผ ๊ฐ์ง object์ด๊ณ , optionalํ ํ๋๋ ์์์ง์ธ์ ํญ์ ์ด๋ค ํ๋๊ฐ ์กด์ฌํ๋ ์ง ์ ์ ์ผ๋ก ๋ถ์ ๊ฐ๋ฅํ๋ค.
๋ํ ์ด๋ฌํ ํน์ฑ์ ๊ธฐ์ธํ์ฌ interface (๋๋ union ๋ฑ์ด ์๋ ์์ object ํํ์ type)์ extendํ ์ ์๋ค.
๊ทธ ์ธ์ Interface๋ Declaration Merging์ด ๊ฐ๋ฅํ๋ค๋ ํน์ํ ์ฑ์ง์ ๊ฐ์ง๋ค.
๊ฐ๋จํ ๋งํด, ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง interface๋ฅผ ๋ค์ ์ ์ํ๋ฉด ํฉ์ณ์ง๋ค.
์ด๋ฏธ ํ์ ์คํฌ๋ฆฝํธ๊ฐ ์ ์ ํ์ดํ์ ์ฌ์ค์ ํ์ค์ผ๋ก ์ธ์ง๋๋ ์ํฉ์์ ๋ฌธ๋ฒ๋ง ์ถ๊ฐ๋๋ค๊ณ ํ๋ฉด ๋์ ๊ฑด ์๋ ์ถ๋๋ผ
์ผ๋ฐ์ ์ผ๋ก๋ ์ต์ JS๋ ํ์ ์คํฌ๋ฆฝํธ๋ก ์์ฑ๋ ํ์ผ์ ๊ตฌํ ๋ธ๋ผ์ฐ์ ๊ฐ ์ธ์ํ ์ ์๋ ๋ฌธ๋ฒ์ผ๋ก ๋ณํํด์ฃผ๋ ์์ ์ ์ํํ๋ค.
Deno๊ฐ run์ ๊ธฐ๋ณธ๊ฐ์ ํ์ ์ฒดํน์ ์ ํ๋ ์ชฝ์ผ๋ก ๋ณ๊ฒฝํ๋ฉด์, SWC์ ํ์ ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ ๊ฐ ์ฐจ์ด๋ก ์ธํด ๊ฒฐ๊ณผ ์ฐจ์ด๊ฐ ์๊น