ํ๋ก๊ทธ๋๋ฐ์ ๊ฝ, ๊ฐ์ฒด์งํฅ์ ๊ฝ ์ ๋ค๋ฆญ
์ ๋ค๋ฆญ์ ์ด๋ ๊ฐ๋ ํต์์ ์ผ๋ก ๋ณผ ์ ์๋ค.(์ฌ์ฌ์ฉ์ฑ์ด ๊ต์ฅํ ๋๊ธฐ ๋๋ฌธ)
์ด์ ํฌ์คํ stack์ ๋จ์ ์ ์ค๋ก์ง stringํ๋ง push, pop ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๋ค์ํ ํ์ ์ push, pop ํ๊ณ ์ถ๋ค๋ฉด ์ ๋ค๋ฆญ์ ์ด์ฉํด์ ํ์ฉ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๋ค.
์ ์ฐํ๊ณ ํ์ ๋ ๋ณด์ฅํ ์ ์๊ณ , ์ฌ์ฌ์ฉ์ ์ ๋ง ๋ง์ด ๋์ผ ์ ์๋ ์ ๋ค๋ฆญ์ ๋ง์คํฐํด๋ณธ๋ค.
(์คํ์์ค๋ API ๋ฌธ์๋ฅผ ๋ณผ ๋ ์ ๋ค๋ฆญ์ ์๊ณ ์๋ค๋ฉด ๋งํ์์ด ์ฝ์ ์ ์๋ค.)
์๋ ํจ์๋ฅผ ์ ๋ค๋ฆญ์ผ๋ก ๋ฐ๊พธ์ด๋ณด์
function checkNotNull(arg: number | null): number {
if (arg == null) {
throw new Error("not valid number");
}
return arg;
}
const result = checkNotNull(123);
console.log(result); //123
console.log(null); //null
์ ๋ค๋ฆญ์ ์ด๋ค ํ์ ์ด๋ ๋ฐ์ ์ ์๊ณ ,
์ฝ๋ฉ์ ํ ๋(์ธ ๋) ํ์ ์ด ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์, any๋ฅผ ๋๋ ค๋ฐ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ํ์ ์์ ์ฑ์ ๋ณด์ฅ๋ฐ์ ์ ์๋ค.
{
//์ ๋ค๋ฆญ ์ ์ฉ ์
function checkNotNull(arg: number | null): number {
if (arg == null) {
throw new Error("not valid number");
}
return arg;
}
const result = checkNotNull(123);
console.log(result); //123
console.log(null); //null
}
{
//์ ๋ค๋ฆญ ์ ์ฉ ํ
function checkNotNull<T>(arg: T | null): T {
if (arg == null) {
throw new Error("not valid number");
}
return arg;
}
const result = checkNotNull(123);
console.log(result); //123
console.log(null); //null
}
์ด์ฒ๋ผ ์ ๋ค๋ฆญ์ ์ด์ฉํ๋ฉด ์ฌ์ฉํ๋ ์ฌ๋์ด ์ด๋ค ํ์ ์ธ์ง ๊ฒฐ์ ํ ์ ์๊ณ ์ ์ฐํ์ง๋ง ํ์ ์ด ๋ณด์ฅ๋ฐ์ ์ ์๋ค.
์ปดํ์ผ ์๊ฐ์ ์ฝ๋ฉํ ๋ ํ์ ์ ๋ณด์ฅ๋ฐ์ ์๊ฐ ์๋ ๊ฒ์ด๋ค.