ํ์ ์คํฌ๋ฆฝํธ๊ฐ ๊ฒฐ๊ตญ ํ์ ์ ์ํ ์ธ์ด์ด๊ธฐ ๋๋ฌธ์, ๋ณ์๋ฅผ ์ ์ธํ ๋๋ง๋ค ํ์ ์ ๋ช ์ํด์ผ ํ๋ค๊ณ ์๊ฐํ ์ ์๋ค. ๊ทธ๋ฌ๋ ํ์ ์คํฌ๋ฆฝํธ์ ๋ง์ ํ์ ๊ตฌ๋ฌธ์ ์ฌ์ค ๋ถํ์ํ๋ค.
์ด๋ ๊ฒ ์๋ฌด ์๊ฐ์์ด ๋ช ์ํ๋ ํ์ ๋ค์ด ์๋ค. ํ์์ ์ฝ๋. ํ์ ์ถ๋ก ์ด ๋๋ค๋ฉด ๋ช ์์ ํ์ ๊ตฌ๋ฌธ์ ํ์ํ์ง ์๋ค. ์คํ๋ ค ์ฝ๋๊ฐ ๊ธธ์ด์ง๊ณ ๊ฐ๋ ์ฑ์ด ์์ข์์ง ์ ์๊ธฐ ๋๋ฌธ์.
ํ์ง๋ง ํ์ ์ด ์ถ๋ก ๋ ์ ์์์๋ ํ์ ์ ๋ช ์ํ๋ ๊ฒ์ด ๋ ์ข์ ๋ช๊ฐ์ง ์ํฉ๋ค์ด ์๋ค. ๋ ์ ํํ ์์น์ ์ค๋ฅ๋ฅผ ํ์ํ๊ธฐ ์ํจ์ด๋ค.
- ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ ์ํ ๋
- ํจ์์ ๋ฐํ๊ฐ์ ๋ช ์ํ ๋
ํ์ ๋ํ๊ธฐ
let ์ผ๋ก ์ ์ธํ๋ ๊ฒฝ์ฐ. ๊ฐ์ด ์ฌํ ๋น๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
๋ฐ๋ผ์ ์ฒ์ ์ด๊ธฐํํ ๊ฐ์ ๊ฐ์ง๊ณ ํ ๋น ๊ฐ๋ฅํ ๊ฐ๋ค์ ์งํฉ์ ์ ์ถํด์ผ ํจ.
์ด๋์ ๋ ๊ฐ๋ฅ์ฑ์ ์ด์ด์ฃผ๊ธฐ ์ํด์ ํ์
๋ํ๊ธฐ๋ฅผ ํ๋ค.
ํด๊ฒฐํ๊ธฐ ์ํด์
- ๋ช ์์ ํ์ ๊ตฌ๋ฌธ
- ์ถ๊ฐ์ ์ธ ๋ฌธ๋งฅ ์ ๊ณต (ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ. ๋งค๊ฐ๋ณ์์ ํ์ ์ด ์ง์ ๋์ด ์๋ค๋ฉด ๊ทธ๊ฑธ๋ก ๋๋๊น) ->26
- const ๋จ์ธ๋ฌธ ์ฌ์ฉ (as const) -> ์ต๋ํ ์ข์ ํ์
์ผ๋ก ์ถ๋ก ํจ
- ํ์ดํ์ํ ๋ ๋ฆฌํฐ๋ด ํ์ ์ผ๋ก ๋ณด๋๊ฑฐ์ผ
- ๊ฐ์ฒด์ ๊ฒฝ์ฐ์๋ readonly ๋ณ์๋ก ์ถ๋ก
type Language = 'Javascript' | 'Typescript' | 'Python';
function setLanguage(language: Language){/* ... */}
let language = 'Javascript';
setLanguage(language); // 'string' ํ์์ ์ธ์๋
// 'Langugae' ํ์์ ๋งค๊ฐ๋ณ์์ ํ ๋น๋ ์ ์์ต๋๋ค
let
๋ณ์๋ก ๋ถ๋ฆฌํ๋ฉด, ํ์
์คํฌ๋ฆฝํธ๋ ํ ๋น ์์ ์ ํ์
์ ์ถ๋ก ํ๋ค. ํ์
๋ํ๊ธฐ๊ฐ ์ ์ฉ๋์ด์ string
ํ์
์ผ๋ก ์ถ๋ก ํ๊ฒ ๋๋ค. string
ํ์
์ Language
ํ์
์ ํ ๋น ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
๋ช ์์ ํ์ ๊ตฌ๋ฌธ
let language: Language = 'JavaScript'
ํ์
์ ์ธ์์ language
์ ๊ฐ๋ฅํ ๊ฐ์ ์ ํํ๋ค.
์ถ๊ฐ์ ์ธ ๋ฌธ๋งฅ ์ ๊ณต
setLanguage('Javascript')
์ธ๋ผ์ธ ํํ์์ ํ์
์คํฌ๋ฆฝํธ๋ ํจ์ ์ ์ธ์ ํตํด ๋งค๊ฐ๋ณ์๊ฐ Language
ํ์
์ด์ด์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์๋ค. ๋ฐ๋ผ์ 'Javascript' ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ํ ๋น ๊ฐ๋ฅํ๋ค.
const ๋ณ์๋ก ์ ์ธ
const language = 'Javascript
ํ์ ์ฒด์ปค์๊ฒ ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ์ด๋ผ๊ณ ์๋ ค์ค๋ค. ๋ฐ๋ผ์ ๋ ์ ํํ ํ์ ์ธ ๋ฌธ์์ด ๋ฆฌํฐ๋ด๋ก ์ถ๋ก ํ ์ ์๋ค.
ํ์ ์ขํ๊ธฐ
- null ๊ฑธ๋ฌ์ฃผ๊ธฐ
- ํ์ ๊ฐ๋
- ํ์ ์ ๋ช ์์ ํ๊ทธ ์ฌ์ฉ