Skip to Content
Sunbeen's Blog
Documents๊ตฌ TypescriptBasic_Grammer13. ๐ŸŸฆ TypeScript - ๊ธฐ๋ณธ๊ฐ’(Default Value) & ์ œ๋„ค๋ฆญ ๊ธฐ๋ณธ๊ฐ’ ์ •๋ฆฌ

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