πŸ“ŒΒ κΈ°λ³Έ ν•¨μˆ˜ - return 값이 μžˆμ„ λ•Œ

function add(num1: number, num2: number): number {
	return num1 + num2;
}
function inAdult(age: number): boolean {
	return age > 19;
}

πŸ“ŒΒ κΈ°λ³Έ ν•¨μˆ˜ - return 값이 없을 λ•Œ

function add(num1: number, num2: number): void {
	console.log(num1 + num2)
}

πŸ“ŒΒ μ˜΅μ…”λ„ λ§€κ°œλ³€μˆ˜

❌
function hello(name: string) {
  return `Hello, ${name || "world"}`
}

const result = hello()
// An argument for Β nameΒ  was not provided.

return 값에 name이 μ—†μ„λ•Œλ₯Ό λŒ€λΉ„ν•œ 둜직이 μ§œμ—¬μ Έ μžˆμŒμ—λ„, TSλŠ” 쑰금 더 λͺ…μ‹œμ μΈ ν‘œν˜„μ΄ ν•„μš”ν•˜λ‹€.

⭕️
function hello(name?: string) {
  return `Hello, ${name || "world"}`
}

const result = hello()

πŸ“ŒΒ μ—¬λŸ¬κ°œμ˜ μ˜΅μ…”λ„ λ§€κ°œλ³€μˆ˜

❌
function hello3(age?: number | undefined, name: string):string {
  if(age !== undefined) {
    return `Hello, ${name}. You are ${age}`
  } else {
    return `Hello, ${name}`
  }
}
//A required parameter cannot follow an optional parameter.

μ˜΅μ…”λ„ λ§€κ°œλ³€μˆ˜κ°€ ν•„μˆ˜ λ§€κ°œλ³€μˆ˜ 보닀 μ•žμ— 올 수 μ—†λ‹€.

⭕️
function hello2(name: string, age?: number):string {
  if(age !== undefined) {
    return `Hello, ${name}. You are ${age}`
  } else {
    return `Hello, ${name}`
  }
}

πŸ“ŒΒ λ‚˜λ¨Έμ§€ λ§€κ°œλ³€μˆ˜

function sum(...nums: number[]) {
  return nums.reduce((result, num) => result + num, 0)
}

sum(1, 2, 3); //6
sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); //55

전달받은 λ§€κ°œλ³€μˆ˜λ₯Ό λ°°μ—΄λ‘œ λ‚˜νƒ€λ‚Έλ‹€.