-
๐ typescript TIL๐ฅ Front-end 2022. 10. 22. 18:17
typescript
๋ Microsoft๊ฐ ๊ฐ๋ฐํด์ VSC๋ ์์ฃผ ์ ํธํ๋๋ค.typescript
๊ฐ ๊ฐ๋ฐ๋ ์ด์ ๋ ํ์ ์์ ์ฑ ๋๋ฌธ์ด๋ค. ์ด๋ก ์ธํ ์ฅ์ - ํ์ ์คํฌ๋ฆฝํธ๋ก ์์ฑํ๋ฉด ์ฝ๋ ๋ฒ๊ทธ๊ฐ ํ์ฐํ๊ฒ ๊ฐ์ํ๋ค.
- ๋ฐํ์ ์๋ฌ๊ฐ ๊ฐ์ํ๋ค.
- ์์ฐ์ฑ๋ ์ฆ๊ฐํ๋ค.
javascript
์์ [1,2,3,4] + false ๋ฅผ ์คํํ๋ฉด '1,2,3,4false'๊ฐ ์ถ๋ ฅ์ด ๋๋ค.array
์boolean
์ ๋ํ์ฌstring
์ด ๋๋ ์ด์ํ ์ค๋ฅ.javascript
๋ ํ์ ์ด ์๋ง์ด์ด๋ ์คํ์์ผ์ฃผ๋๋ฐ ์ด๊ฒ์ดjavascript
์ ๊ฐ์ฅ ํฐ ์ค๋ฅ ์ค ํ๋.typescript
๋ฅผ ์ปดํ์ผํ๋ฉดjavascript
๋ก ๋ณํ์์ผ์ค๋ค.์ด ๋ ์ค๋ฅ๊ฐ ์๋ค๋ฉด
javascript
๋ก ์ปดํ์ผ๋๊ธฐ ์ ์ ์ค๋ฅ๊ฐ ๊ฒ์ถ๋๊ณ ์ปดํ์ผ ๋์ง ์๋๋ค.typescript
์ฝ๋๋ฅผ ์์ฑํ ๋์๋let b : boolean = false
์ด๋ฐ ์์ผ๋ก ํ์ ์ ๋ช ์์ ์ผ๋ก ์์ฑํ๊ธฐ ๋ณด๋ค๋
typescript
๊ฐ ํ์ ์ ์ถ๋ก ํ๋๋ก ํ๋ ๊ฒ์ด ์ข๋ค.const player: { readonly name: string // min.name = "์์ " -> readonly์ด๊ธฐ ๋๋ฌธ์ ์์ ๋ถ๊ฐ age?: number } = { name: "min" } if(player.age && player.age < 10) { // player.age < 10๋ง ์์ผ๋ฉด ์ค๋ฅ. number๊ฐ ์๋ ์๋ ์๋ค๊ณ ํ๋จํ๊ธฐ ๋๋ฌธ. }
์์ ์ฝ๋๋ฅผ ํด๋ฆฐํ๊ฒ ์์ฑํ๊ณ ์ ๊ฐ์ํจ ์ฝ๋.
type Age = number type Player = { name: string, age?: Age } const min = Player = { // ์ฝ๋ ์ฌ์ฌ์ฉ name: "min" } function playerMaker(name: string) : Player { return { name: string } } // == const PlayerMaker = (name: string) : Player => ({name}) const min = playerMaker("min"); min.age = 15; // ์ค๋ฅ X
const numbers : readonly number[] = [1, 2, 3, 4];
numbers.push ~ => ์ค๋ฅ
Tuple
const player : [string, number, boolean] = ["min", 1, true] => ์ต์ ์ธ๊ฐ์ ์์ดํ ์ ๊ฐ๊ณ ์ด ์์๋ก ๊ฐ์ ธ์ผํจ์ ์๋ ค์ค
javascript์์๋ array๋ก ๋ณด์ธ๋ค.
Unknown
let a : unknown; => ๋ณ์๋ฅผ ๋ฏธ๋ฆฌ ์ ์ ์์ ๋ ์ฌ์ฉํ๋ค. ์ผ์ข ์ ๋ณดํธ ์ญํ . ์ด๋ค ์์ ์ ํ๋ ค๋ฉด ์ด ๋ณ์์ ํ์ ์ ๋จผ์ ํ์ธํด์ผํ๋ ์.
if(typeof a === 'number') { let b = a + 1; // ๋ฌธ์ ์์. ์ฝ๋ ์์์ a๋ number์ด๊ธฐ ๋๋ฌธ. }
void
function hello() { // type: void. ๋ณดํต์ void๋ผ๊ณ ์ ์ธํ์ง ์์๋ ๋จ. return์ด ์๋ ํจ์๋ void console.log('x'); }
Never
ํจ์๊ฐ ์ ๋๋ก return ํ์ง ์์ ๋ ์ฌ์ฉํ๋ค.
function hello(): never { return "hello"; // error throw new Error("xxxxx"); // error ๋ฐ์ X }
๋ํ never๋ ํ์ ์ด ๋ ๊ฐ์ง์ผ ์๋ ์๋ ์ํฉ์๋ ๋ฐ์ํ ์ ์๋ค.
function hello(name: string | number) { if(typeof name === "string") { name } else if(typeof name === "number") { name } else { name // ๋ฐ์ํ์ง ์์์ผํ๋ ์ฝ๋์ด๋ฏ๋ก never } }