13. ๐ฆ TypeScript - ๊ธฐ๋ณธ๊ฐ(Default Value) & ์ ๋ค๋ฆญ ๊ธฐ๋ณธ๊ฐ ์ ๋ฆฌ
๐ 1. ๋งค๊ฐ๋ณ์ ๊ธฐ๋ณธ๊ฐ (Default Parameter)
โ ๊ธฐ๋ณธ๊ฐ ์ค์ ์ ํ์ ์ถ๋ก
- ํ์ ์คํฌ๋ฆฝํธ๋ b์ c๋ฅผ ์๋์ผ๋ก number๋ก ์ถ๋ก ํจ
- ๋ช ์์ ํ์ ์ ์ธ์ด ์์ด๋ ๊ฐ๋ฅํ์ง๋ง, ๋ช ํ์ฑ์ ์ํด ํ์ ์ง์ ๊ถ์ฅ
// ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง๊ณ ํ์
์ถ๋ก
const a = (b = 3, c = 4) => {
return 3;
};
โ ๋ช ์์ ์ผ๋ก ํ์ ๋ถ์ด๊ธฐ
// ํ์
๋ถ์ด๊ธฐ
const a = (b: number = 3, c: number = 4) => {
return 3;
};
โ ๊ฐ์ฒด ํ์ ๋งค๊ฐ๋ณ์ ๊ธฐ๋ณธ๊ฐ
const a = (b: { children: string } = { children: "sunbin" }) => {
return;
};
๐ 2. ์ ๋ค๋ฆญ ๊ธฐ๋ณธ๊ฐ
โ ๋ฆฌ์กํธ ์ฌ์ฉ ์ ์ฃผ์
- โ React JSX ํ๊ฒฝ์์๋
<T>
๋ฅผ<div>
๋ก ์คํดํ ์ ์์ด ํ์ ์๋ฌ ๋ฐ์ ๊ฐ๋ฅ- โค TSX ํ์ผ์์๋ ๋ฐ๋์ ์ผํ๋ฅผ ๋ถ์ด๊ฑฐ๋ ๋ช ํํ๊ฒ ์ ์ฝํด์ผ ํจ
// const add = <T>(x:T, y:T) => ({x ,y});
const add = <T>(x: T, y: T) => ({ x, y });
โ ์ ๋ค๋ฆญ์ ๊ธฐ๋ณธ๊ฐ ์ง์
T์ ๊ธฐ๋ณธ ํ์ ์ unknown์ผ๋ก ์ค์
ํธ์ถ ์ ๋ช ์๋ ํ์ ์ด ์์ผ๋ฉด T๋ unknown์ผ๋ก ์ถ๋ก ๋จ
// ์ ๋๋ฆญ์ ๊ธฐ๋ณธ๊ฐ์ ๋ฃ์ด์ ์ฒ๋ฆฌํจ
const add = <T = unknown>(x: T, y: T) => ({ x, y });
โ ์ผํ๋ฅผ ๋ถ์ฌ ๊ตฌ๋ฌธ ์ถฉ๋ ๋ฐฉ์ง (TSX ๋์)
<T,>
const add = <T>(x: T, y: T) => ({ x, y });
// ํ์
์คํฌ๋ฆฝํธ๊ฐ ๋ด์ฉ์ ํ์ธํ๊ณ , ํ์
์ ๋ค์ ๋ฎ์ด์จ์
const add = <T extends unknown>(x: T, y: T) => ({ x, y });
add(1, 2); //๋ฅผ ํธ์ถํ๋ค๋ฉด, number๋ฅผ ํธ์ถํ ๊ฒ์ผ๋ก ํ์ธํ๊ณ ๋ฎ์ด์ฐ๋ ๊ณผ์ ์ ์งํ ํ๊ฒ ๋จ
Last updated on