#2 Overview of TypeScript

#2.0 How Typescript Works

TS ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด.

Strongly Typed Programming Language => ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ด์„œ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด TS => JS

TS๋ฅผ ์ปดํŒŒ์ผํ•˜๋Š” ๊ณผ์ •์—์„œ ์—๋Ÿฌ๋ฅผ ํ™•์ธํ•˜๋ฉด ์ปดํŒŒ์ผ์ด ์ค‘์ง€๋˜๊ณ , ์—๋Ÿฌ๋ฅผ ๋ฆฌํ„ดํ•จ

=> ๋Ÿฐํƒ€์ž„ ์ด์ „์— ์ž˜๋ชป๋œ ๋ถ€๋ถ„์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Œ

#2.1 Implicit Types vs Explicit Types

TS์˜ ํƒ€์ž… ์‹œ์Šคํ…œ - ํƒ€์ž… ์ถ”๋ก , ๋ช…์‹œ์  ์„ ์–ธ

let a = "hello" // let a : string
a = "bye"

a = 1 // error : type number is ~~
// ๋ณ€์ˆ˜ ์„ ์–ธ์‹œ string์œผ๋กœ ํ–ˆ์œผ๋ฉด string์œผ๋กœ ๋ฎ์„ ์ˆ˜ ์žˆ์Œ
// JS๋Š” ๋ฌธ์ œ์—†์ง€๋งŒ TS์—์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋จ

let b : boolean = "x" // error : "x"๋Š” boolean์ด ์•„๋‹˜
// ํƒ€์ž…์„ ์„ ์–ธํ•˜๋Š” ๋ฐฉ์‹, ๋ช…์‹œ์ ์œผ๋กœ ํƒ€์ž…์„ ์„ ์–ธํ•จ
// ๋ช…์‹œ์  ์„ ์–ธ์€ ์ตœ์†Œํ™” ํ•˜๋Š”๊ฒŒ ์ข‹์Œ => ํƒ€์ž… ์ถ”๋ก ์„ ํ™œ์„ฑํ™”

let c = [1, 2, 3] // let c : number[]
c.push("1") // error : number array์— string์„ ์ถ”๊ฐ€ํ•˜๋ฉด ํƒ€์ž…์ด ์„ž์ž„

#2.2 Types of TS part One

๊ธฐ๋ณธ ํƒ€์ž… - number / string / boolean / ...[]

Optional ์„ ํƒ์  ๋ณ€์ˆ˜

type ์„ ์–ธ

#2.3 Types of TS part Two

readonly - ์ฝ๊ธฐ ์ „์šฉ,, ์ตœ์ดˆ ์„ ์–ธ ํ›„ ์ˆ˜์ • ๋ถˆ๊ฐ€. immutability ๋ถ€์—ฌ => TS์—์„œ๋Š” ๋ณดํ˜ธ๋ฐ›์ง€๋งŒ JS์—์„œ๋Š” ์ ์šฉ ์•ˆ๋จ

Tuple - ์ •ํ•ด์ง„ ๊ฐœ์ˆ˜์™€ ์ˆœ์„œ์˜ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์•ผํ•  ๋•Œ ์‚ฌ์šฉ, readonly ์‚ฌ์šฉ ๊ฐ€๋Šฅ

undefined, null, any ํƒ€์ž…

#2.4 Types of TS part Three

TS์—๋งŒ ์žˆ๋Š” ํƒ€์ž…๋“ค

unknown - ์–ด๋–ค ํƒ€์ž…์ธ์ง€ ๋ชจ๋ฅด๋Š” ๋ฐ์ดํ„ฐ

void - ์•„๋ฌด๊ฒƒ๋„ return ํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜. ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ์•Œ์•„์„œ ์ ์šฉ๋จ

never ใ„ด ํ•จ์ˆ˜๊ฐ€ ์ ˆ๋Œ€ returnํ•˜์ง€ ์•Š์„๋•Œ - ํ•จ์ˆ˜์˜ exception์ด ๋ฐœ์ƒํ• ๋•Œ

Last updated