๐ 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 = () => {  |