๐ Quick Start Typescript ์ ์ฝ๊ณ , ๊ฐ๋จํ ๋ชฐ๋๋ ๋ถ๋ถ์ด๋ ์ค์ํ๋ค๊ณ ์๊ฐ๋๋ ๋ถ๋ถ์ ์์ฑ
9์ฅ ๊ณ ๊ธ ํ์
๐315p. ์ ๋์ธ ํ์
1 | const x: string | number; |
๐317p. ํ์ ๊ฐ๋
typeof
1 | function myIndexOf(x: number | string, y: string) { |
instanceof
1 | function diff(x: Cat | Dog) { |
๐320p. ๊ณ ๊ธ ํ์ ๋ค
๋ฌธ์์ด ๋ฆฌํฐ๋ด ํ์
1 | let event; 'keyup' = 'keyup'; // O |
๋ฃฉ์ ํ์ (= ์ธ๋ฑ์ค ํ์ )
keyof
๋ช
๋ น์ด๋ฅผ ํตํด ํ์
T์ ํ์ ํ์
์ ์์ฑ, ํ์
T๋ ์ฌ๋ฌ ํ์
์ผ๋ก ์ด๋ค์ง ์ ๋์ธ์ด๋ ์ธํฐํ์ด์ค ํ์
์ ์๋ฏธ
ํ์ฅ์ฑ์ ๊ณ ๋ คํด interface
๋ฅผ ๋์
1 | interface Profile { |
์ด ์ธํฐํ์ด์ค๋ฅผ keyof
๋ฅผ ํ์ฉํ์ฌ ๋ฃฉ์
ํ์
์ผ๋ก ์ ์ธ
1 | // # 1 |
non-nullable ํ์
ํ์
์คํฌ๋ฆฝํธ 2.0 ์ด์ ์๋ null
์ด๋ undefined
๋ ๋ชจ๋ ํ์
์ ๋ณ์์ ํ ๋นํ ์ ์์์
๊ทธ๋ฌ๋, tsconfig.json
์ strictNullCheck
์ true๋ก ๋ฐ๊พธ๋ฉด, null
๊ณผ undefined
๊ฐ ์๋์ผ๋ก ๋ชจ๋ ํ์
์ ํ ๋น๋์ง ์๊ณ ๋ณ๋๋ก ํ์
์ผ์ฌ ๊ด๋ฆฌํด์ค์ผํจ.
never ํ์
never
๋ ๋ชจ๋ ํ์
์ ํ์ ํ์
์ผ๋ก ์ฌ์ฉํ ์ ์์ง๋ง, any
๋ง ํ ๋น๋ ์ ์๋ค.
์ฌ์ฉ์ฉ๋
- ํจ์์ ๋ฟ์ ์ ์๋ ์ฝ๋ ์์ญ์ด ์์ด ๋ฐํ๊ฐ์ด ์กด์ฌํ์ง ์์ ๋
- ํจ์์
throw
๊ฐ์ฒด๊ฐ ๋ฐํ๋์ด, ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋
1 | const neverFunc = (): never => { |
1 | function error(message: string): never { |
this ํ์
this
ํ์
์ ๋คํ์ this ํ์
์ด๋ผ๊ณ ๋ ํจ, ์ ์ธ ์์น์ ๋ฐ๋ผ ์ฐธ์กฐํ๋ ๋์์ด ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ
์ธํฐํ์ด์ค์ this
์ฌ์ฉ ์์
1 | interface ListItem { |
ํ๋ฃจ์ธํธ ์ธํฐํ์ด์ค ํจํด (ํ๋ฃจ์ธํธ ํจํด)
๊ทธ๋ฅ ์๊ธฐ์์ ๋ฐํํด์ ์ฒด์ด๋ํ๋ ํจํด
๊ฐ์ธ์ ์ผ๋ก ์ด๋ฐ ํ์์ผ๋ก ๋ง์ด ์ฌ์ฉํ์์
1 | const Mycalc = () => { |