React + TypeScript๋ฅผ ๊ณต๋ถํ๋ค ๋ณด๋ฉด ? ๋ฌธ๋ฒ์ ์ฌ๊ธฐ์ ๊ธฐ์ ๋ณด๊ฒ ๋๋๋ฐ,
๋ชจ๋ ๊ฐ์ ์๋ฏธ์ผ๊น? โ โ ๊ผญ ๊ทธ๋ ์ง ์๋ค!
const result = userName?.length;
์๋ฏธ:
userName์ด null์ด๋ undefined๊ฐ ์๋๋ฉด .length๋ฅผ ์คํํ๊ณ ,
๊ทธ๋ ์ง ์์ผ๋ฉด undefined๋ฅผ ๋ฐํํด๋ผ!
/*
? ๋ null safe ์ฐ์ฐ์
userName?.length ์ ์๋ฏธ๋ userName ์ด null ์ด ์๋๋๋ง .length ๋ฅผ ์ฐธ์กฐํด๋ผ ๋ผ๋ ์๋ฏธ
userName!.length ์ ์๋ฏธ๋ userName ์ด null ์ผ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ ๊ทธ๋ฅ .length ๋ฅผ ์ฐธ์กฐํด๋ผ ๋ผ๋ ์๋ฏธ
const result = userName?.length ์์
1. userName ์ด null ์ด ์๋๋ฉด .length ๊ฐ ์ฐธ์กฐ๋์ด์ result ์ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ๋์
๋๋ค.
2. userName ์ด null ์ด๋ฉด .length ๊ฐ ์ฐธ์กฐ ๋์ง ์๊ณ result ์๋ null ์ด ๋์
๋๋ค.
๋ฐ๋ผ์ result ๋ผ๋ ๋ณ์๋ null ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ ์๋ฏธ์ด๋ค.
???
*/
interface User {
name?: string;
}
?. ๋ ์คํ ์ค์ ์ฌ์ฉํ๋ ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์
?: ๋ ํ์ ์ ์์์ ์ฌ์ฉํ๋ ์ ํ์ ์์ฑ
๋ชจ์์ ๋น์ทํด๋ ์์ ํ ๋ค๋ฅธ ์ฉ๋!