[Typescript] null๊ณผ undefined

[์›๋ณธ ๋งํฌ]

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ null๊ณผ undefined๋Š” ๊ทธ ์ž์ฒด๋กœ ์˜ค๋ฅ˜๋‚˜ ๋ฏธ์ดˆ๊ธฐํ™”๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ด๋‹ค.

ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ๋„ ์ด๋ฅผ ๊ทธ๋Œ€๋กœ ์ง€์›ํ•˜๋ฉฐ, ์ด๋“ค ๊ฐ๊ฐ์€ ๊ฐ์ž์˜ ํƒ€์ž…์„ ๊ณ ์œ ํ•˜๊ฒŒ ๊ฐ€์ง„๋‹ค.
null๊ฐ’์€ ํƒ€์ž…๋„ null์ด๋ฉฐ, undefined๋„ ํƒ€์ž…์ด undefined๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํƒ€์ž…๊ฐ’์—๋„ ์ €๊ฒŒ ๊ทธ๋Œ€๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

์ž˜ ๋Œ์•„๊ฐ„๋‹ค.
๊ทผ๋ฐ ์ € ์˜ค๋ฅ˜์™€ ๋ฒ„๊ทธ์˜ ์›์ฒœ์„ ๊ทธ๋Œ€๋กœ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ๊ฑด ๋ง๋„ ์•ˆ๋˜๋Š” ์†Œ๋ฆฌ๋‹ค.

๋‹คํ–‰ํžˆ๋„ ๊ธฐ๋ณธ์„ค์ •์€ ์•„๋‹ˆ์ง€๋งŒ,
์ „์šฉ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฃผ๋ฉด null์ด๋‚˜ undefined ๊ฐ’์ด ์•„๋ฌด๋ฐ๋‚˜ ๋“ค์–ด๊ฐ€์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.
--strictNullChecks๋‹ค.

์ด๋Ÿฐ๊ฑด ์ข€ ๊ธฐ๋ณธ์„ค์ •์œผ๋กœ ํ•˜๋Š”๊ฒŒ ์ข‹์•˜์„ํ…๋ฐ.



Nullable ํƒ€์ž…

๊ทธ๋Ÿผ ์ €๋Ÿฐ ์ƒํ™ฉ์—์„œ null์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

null์„ ์•„์˜ˆ ์“ฐ์ง€ ์•Š๋Š”๋‹ค๋Š”๊ฑด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ œ์•ฝ์„ ๊ฑธ์–ด๋‘˜ ๋ฟ์ด์ง€...
์ด๋ ‡๊ฒŒ ํƒ€์ž…์„ ์ถ”๊ฐ€๋กœ ์จ๋ถ™์—ฌ์ฃผ๋ฉด ์ด์ œ number์™€ null์ด ์ „๋ถ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค.

nul ๋Œ€์‹  undefined๋ฅผ ์จ๋„ ๋˜๊ณ , | ํ•˜๋‚˜ ๋” ๋ถ™์ด๊ณ  ์จ๋„ ๋œ๋‹ค.
์—ฌํŠผ ์ €๋ ‡๊ฒŒ ๋Œ๋ฆฌ๋ฉด

์ด๋ฒˆ์—” ์ž˜ ๋ˆ๋‹ค!!

๊ทธ๋ฆฌ๊ณ  nullable ํƒ€์ž…๊ณผ nullable์ด ์•„๋‹Œ ํƒ€์ž… ๊ฐ„์—” ์™„์ „ํ•œ ํ˜ธํ™˜์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ๋Ÿผ ์ €๊ฑธ ์‚ฌ์šฉํ• ๋•Œ null์ธ์ง€ ์•„๋‹Œ์ง€ ๊ฒ€์ฆํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ null์„ ๋ฒ—๊ฒจ๋‚ด๋„๋ก ํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

if๋ฌธ์ด๋‚˜ ์‚ผํ•ญ์—ฐ์‚ฐ์ž ๋‹ฌ์•„๋‹ค๊ฐ€ ๋„ ๊ฒ€์‚ฌ๋ฅผ ํ•ด๋„ ๋˜๊ฒ ์ง€๋งŒ, ๋‹จ์ˆœํžˆ ์—†์„ ๊ฒฝ์šฐ์˜ ๊ฐ’๋งŒ ์ „๋‹ฌํ•  ๊ฑฐ๋ผ๋ฉด || ์—ฐ์‚ฐ์ž๋กœ ์ฒ˜๋ฆฌํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. null์ด ๋…ผ๋ฆฌ ๊ฑฐ์ง“์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋‹ˆ ๊ฐ€๋Šฅํ•œ ๊ผผ์ˆ˜๋‹ค.
์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š”๊ฒŒ null์ผ ๊ฒฝ์šฐ์— ๋ฐ˜ํ™˜๋  ๊ฐ’์ด๋‹ค.