TypeScript๋ ๋ด $#!% ๐ฉ ๋ชฉ๋ก์ ์์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ(JS)
JS - Netscape์ Brendan Eich๊ฐ ๊ฐ๋ฐํ ๋์ ์์ค์ ECMAScript ํด์/์ ์ ์ปดํ์ผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. Java๊ณผ ํผ๋ํ์ง ๋ง์ญ์์ค.
JavaScript was initially created to โmake web pages aliveโ.
๐ฉ๐ฝโ๐ป(๋): ์ ์ง๋ด์JavaScript , ์ธ๊ณ์์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์คํฌ๋ฆฝํ ์ธ์ด ์ค ํ๋์ ๋ํด ๋ฌด์จ ๋ง์ ๋ ํด์ผ ํ ๊น์? ๐(์ธ๊ณ): TypeScript ๋๋ GTFO์ ๋ํด ์์๋ณด์ธ์.
๊ทธ๋์ TypeScript๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ๊ฑฐ์ง๋ง ์ํ๊ณ ์ฒ์์๋ ๋๋ฌด ์ํ ์ด์. ๋๋ JS๋ฅผ ์ถฉ๋ถํ ์ค๋ ์ฌ์ฉํ์ง ์์๊ณ , JS๋ฅผ ์ถฉ๋ถํ ์ดํดํ์ง ์์์ผ๋ฉฐ, TS์ ๊ฐ์ ๊ฒ์ ๊ฐ์ฌํ ๋งํผ ๋ชจ๋ ๋ฐ๋ณด ๊ฐ์ JS ์ค๋ฅ/๋ธ๋ผ์ฐ์ ํธํ์ฑ ๋ฌธ์ ์ ์ถฉ๋ถํ ์ง์ฆ์ ๋์ต๋๋ค.
Thus, TS was very much so on my ๐ฉ list, but I have since seen the light.
ํ์ ์คํฌ๋ฆฝํธ(TS)
TS - JavaScript๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Microsoft์์ ๊ฐ๋ฐํ ๊ฐ๋ ฅํ ์ ํ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋ชจ๋ ๊ท๋ชจ์์ ๋ ๋์ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๋ํฐ ์ฒดํฌ
TS๊ฐ ๋ง์์ ๋ค์ง ์์ผ๋ฉด ์ปดํ์ผ๋์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐ์๊ธฐ ๋๋ฒ๊น ์ ํธ์ง๊ธฐ ๊ฒ์ฌ๋ก ์ ๋ชฝ์ด ์๋๋๋ค.
const user = {
id: l334,
firstName: "Nicole",
lastName: "Nobles",
job: "Web developer",
}
console.log(user.name)
JS๋ ์ฌ์ฉ์์๊ฒ ์ด๋ฆ ์์ฑ์ด ์๋ค๋ ๊ฒฝ๊ณ ๋ฅผ ์์ง ๋ชปํฉ๋๋ค.
ํ์ง๋ง TS์์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Property 'name' does not exist on type { firstName: string; lastName: string; job: string }
์๋ ์์ฑ
๋ ์ด์ ๊ฐ์ฒด์ ์ด๋ค ์์ฑ์ด ์๋์ง ์ถ์ธกํ์ง ์์๋ ๋ฉ๋๋ค.
์ธํฐํ์ด์ค
์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ ๊ฒฝ์ฐ ๊ฐ์ฒด์ ํ์ํ ์์ฑ์ ์ถ๊ฐ/์ ๊ฑฐํ ์ ์์ต๋๋ค.
*์ฐธ๊ณ : ์์ฑ ๋ค์
?
๋ฅผ ์ถ๊ฐํ๋ฉด ์ ํ ์ฌํญ์ด ๋ฉ๋๋ค.interface User {
id: number
firstName: string
lastName: string
job: string
remote?: boolean
}
function updateUser(id: number, update: Partial<User>) {
const data = getUser(id)
const user = { ...data, ...update, city: "Hachiลji" }
saveUser(id, user)
}
TS๋ '์ฌ์ฉ์' ์ธํฐํ์ด์ค์ '๋์'๊ฐ ์กด์ฌํ์ง ์๋๋ค๊ณ ์ ๋นํ๊ฒ ๋ถํํ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ TS ๋น์ฐ์ ์ผ๊ฐ์ ๋ถ๊ณผํฉ๋๋ค. ๋ด ๋ง์ ๋ฏฟ์ง ๋ง์ญ์์ค. ์ค๋ช ์here๋ฅผ ํ์ธํ์ญ์์ค.
๊ฒฐ๋ก
์ ์ ํ ๊ธฐํ๊ฐ ์ฃผ์ด์ง๋ฉด TypeScript๋ ํธ์ง๊ธฐ ํ์ธ, ์๋ ์์ฑ ๋ฐ ์ธํฐํ์ด์ค ๊ธฐ๋ฅ์ ํตํด ์๊ฐ๊ณผ ํ๋ ๊ณ ํต์ ์ค์ด๋ ๋ฐ ๋๋๋๋ก ๋์์ด ๋์์ต๋๋ค. ๋๋ ๋๋๋ก ๊ฑฐ์ง๋ง์ ํ์ง ์๊ณ ๊ทธ๋ฅ ๋๋ฆฌ๊ณ
any
ํ๋ฃจ๋ผ๊ณ ๋ถ๋ฅด์ง๋ง, ํ๋ก์ ํธ์ ๋๋จธ์ง ๋ถ๋ถ์ฒ๋ผ ํ์ดํ๋ ๋๊น์ง ๊ทธ๊ฒ์ ๋๋ฅผ ์ ์ํด ๋ฒ๋ฆฝ๋๋ค.๊ทธ๋ฌ๋ ์นจ์ฐฉํ๊ณ Type(Script)๋ฅผ ์ผ์ญ์์ค. ์ฝ์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๐
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(TypeScript๋ ๋ด $#!% ๐ฉ ๋ชฉ๋ก์ ์์์ต๋๋ค.), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/shecodez/typescript-used-to-be-on-my-list-42l9ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค