TypeScript

TypeScript 함수

bergerac 2025. 4. 22. 09:11

함수 선언과 호출

타입스크립트에서 함수는 다음과 같이 선언한다.

function greet(name: string): string {
  return `Hello ${name}`;
}
  • name: string → name이라는 매개변수는 string 타입이어야 함
  • : string → 이 함수는 string을 반환함

만약 return 값을 생략하거나 반환값이 없으면 void 타입을 사용한다.

 

타입 별칭을 이용한 함수 타입 선언

함수타입을 명시할 대 타입 별칭을 활용하면 코드가 훨씬 읽기 쉬워짐

type ArrowFuncType = (name: string) => string;

const arrowFunc: ArrowFuncType = (name) => {
  return `Hi ${name}`;
};

console.log(arrowFunc('bergerac'));
console.log(arrowFunc('roxan'));

ArrowFuncType은 (name: string) => string 타입의 함수라는 의미

Hi bergerac
Hi roxan

선택적 매개변수와 기본 매개변수

함수를 호출할 때 매개변수를 생략하거나, 기본값을 제공하고 싶을 때가 있다. 이럴 때 선택적 매개변수와 기본 매개변수를 활용한다.

function select(name?: string, nickname: string = '어둠의더듬이') {
  if (name) {
    console.log(`${nickname} is ${name}`);
  } else {
    console.log(`${nickname} is guest`);
  }
}

select();                       // 어둠의더듬이 is guest
select('bergerac');             // 어둠의더듬이 is bergerac
select(undefined, '드기쉬');      // 드기쉬 is guest
select('roxan', '나의천사');      // 나의천사 is roxan

 

  • name?: string → 선택적 매개변수 (undefined일 수 있음)
  • nickname: string = '어둠의더듬이' → 기본값이 할당된 매개변수

Rest(나머지) 매개변수

여러 개의 인자를 배열 형태로 받고 싶다면 Rest 매개변수를 사용한다. 문법은 JavaScript와 동일하지만, 타입스크립트에선 타입을 배열로 명시해야 한다.

function sum(a: number, b: number, ...c: number[]) {
  return c.reduce((c1, c2) => c1 + c2, 0);
}

console.log(sum(1, 2, 3, 4, 5, 6)); // 18
console.log(sum(1, 2));             // 0
console.log(sum(1, 2, 10, 20, 30)); // 60

 

  • ...c: number[] → c는 숫자 배열을 의미
  • .reduce(...)를 이용해 배열 내 요소를 누적합으로 계산

⚠️ Rest 매개변수는 항상 가장 마지막 위치에 와야 하며, 타입은 배열(type[]) 형태로 작성해야 한다.

 

 

 

 

 

 

 

 

 

'TypeScript' 카테고리의 다른 글

TypeScript - TypeAssertion  (0) 2025.04.23
TypeScript "Type" - literal type  (0) 2025.04.21
TypeScript "Type" - Intersection  (0) 2025.04.20
TypeScript "Type" - Union  (0) 2025.04.19
TypeScript "Type" -객체 타입과 타입 별칭(alias)  (0) 2025.04.18