TypeScript 기본 다지기 Ⅱ

jinew·2025년 3월 7일

🍏 TypeScript

목록 보기
2/7
post-thumbnail

📌 함수와 타입


1️⃣ 함수의 매개변수와 반환 타입

: 타입스크립트에서는 함수의 매개변수와 반환값(return)의 타입을 명확히 지정할 수 있다.

function add(a: number, b: number): number {
  return a + b;
}
  • 여기서 a: numberb: number 는 타입이 지정된 매개변수이다.
  • : number 는 반환 타입이다.
  • 만약 반환 타입을 지정하지 않으면 타입스크립트가 자동으로 타입을 추론하지만 명시적으로 타입을 지정해주는 것이 좋다 ⭐⭐

2️⃣ 선택적 매개변수 (Optional Parameter)

: 함수의 매개변수를 선택적으로 만드려면 ?를 붙이면 된다.

function greet(name: string, age?:number): string {
	return age ? `Hello, ${name}. You are ${age} years old.` : `Hello, ${name}.`
}

console.log(greet("Alice")); // Hello, Alice.
console.log(greet("Bob", 25)); // Hello, Bob. You are 25 years old.
  • age?: numberage는 있어도 되고 없어도 되는 선택적 매개변수
  • ?가 붙으면 undefined일 수도 있으니 주의해야 한다.

3️⃣ 기본 매개변수 (Default Parameter)

: 매개변수에 기본값을 설정할 수도 있다.

function greet(name: string = "Guest"): string {
  return `Hello, ${name}!`;
}

console.log(greet()); // Hello, Guest!
console.log(greet("Alice")); // Hello, Alice!

4️⃣ void와 never 타입

🔸 void 타입 (반환값이 없는 함수)

function logMessage(message: string): void {
  console.log(message);
}
  • void는 아무것도 반환하지 않는 함수를 나타낸다.
  • return;은 가능하지만 return 값;은 불가능하다.

🔸 never 타입 (절대 반환되지 않는 함수)

function throwError(message: string): never {
  throw new Error(message);
}

function infiniteLoop(): never {
  while (true) {
    console.log("무한 루프");
  }
}
  • never 타입은 절대 값을 반환하지 않는 함수에 사용된다.
  • 보통 에러를 던지는 함수에서 사용한다.
  • 저어어어엉말로 return문이 없는 함수에서만 사용해야 한다 🚨

5️⃣ 화살표 함수와 타입

: 타입스크립트에서도 화살표를 사용할 수 있는데, 이 때 함수 표현식에 타입을 명시적으로 선언할 수 있다.

const multiply = (a: number, b: number): number => a * b;
console.log(multiply(2, 3)); // 6

6️⃣ 함수 타입 (Function Type)

let calculator: (x: number, y: number) => number;

calculator = (a, b) => a + b; // 가능
calculator = (a, b) => a * b; // 가능
calculator = (a, b) => `${a} + ${b}`; // ❌ 오류 발생 (반환 타입 불일치)

7️⃣ 함수 타입과 인터페이스

: 인터페이스를 사용해서 함수의 타입을 정의할 수도 있다.

interface MathOperation {
  (a: number, b: number): number;
}

const add: MathOperation = (x, y) => x + y;
const subtract: MathOperation = (x, y) => x - y;

console.log(add(5, 3)); // 8
console.log(subtract(5, 3)); // 2
  • 인터페이스를 활용하면 코드 재사용성과 가독성이 좋아진다! 🚀


✅ 정리


  • 매개변수반환 타입을 명확하게 지정하면 코드 안정성이 높아진다.
  • 선택적 매개변수(?)와 기본값을 활용하면 유연하게 함수를 정의할 수 있다.
  • 반환값이 없는 함수는 void, 절대 끝나지 않는 함수는 never를 사용한다.
  • 화살표 함수에서도 타입을 명확히 지정할 수 있다.
  • 인터페이스를 사용하면 함수 타입을 재사용할 수 있다.
profile
멈추지만 않으면 도착해 🛫

0개의 댓글