Post

함수 인자 타입과 반환 타입 정의하기

함수 인자 타입과 반환 타입 정의 개념정리

함수 인자 타입과 반환 타입 정의하기

TypeScript는 함수의 인자와 반환 타입을 명확하게 정의할 수 있게 하여 코드의 안정성과 가독성을 크게 향상시킨다.

함수 인자 타입 정의하기


함수 인자 타입을 정의하면 함수가 기대하는 인자의 타입을 명확하게 지정할 수 있다.
이를 통해 잘못된 타입의 인자가 함수에 전달되는 것을 방지할 수 있다.

예시코드


기본 예시

1
2
3
4
5
6
function greet(name: string): string {
  return `Hello, ${name}!`;
}

const message = greet('Alice');
console.log(message); // Hello, Alice!

위 예시에서 greet 함수는 name 인자로 문자열 타입을 기대한다.
만약 다른 타입의 값을 전달하면 TypeScript는 컴파일 타임에 오류를 발생시킨다.

여러 인자 타입 정의 예시

1
2
3
4
5
6
function add(a: number, b: number): number {
  return a + b;
}

const sum = add(3, 5);
console.log(sum); // 8

이 예시에서는 add 함수가 두 개의 숫자 인자를 받아서 그 합을 반환하도록 정의되어 있다.

함수 변환 타입 정의하기


함수의 반환 타입을 정의하면 함수가 반환하는 값의 타입을 명확하게 지정할 수 있다.
이는 함수의 예상 결과를 명확하게 하고, 잘못된 반환 타입을 방지할 수 있다.

예시코드


기본 예시

1
2
3
4
5
6
function multiply(a: number, b: number): number {
  return a * b;
}

const product = multiply(4, 5);
console.log(product); // 20

이 예시에서 multiply 함수는 두 개의 숫자 인자를 받아서 그 곱을 반환하도록 정의되어 있다.
반환 타입은 숫자로 지정되어 있다.

객체 반환 예시

1
2
3
4
5
6
7
8
9
10
11
type User = {
  id: number;
  name: string;
};

function createUser(id: number, name: string): User {
  return { id, name };
}

const newUser = createUser(1, 'John Doe');
console.log(newUser); // { id: 1, name: 'John Doe' }

이 예시에서는 createUser 함수가 User 타입의 객체를 반환하도록 정의되어 있다.
반환 타입을 명시함으로써 함수가 올바른 타입의 객체를 반환하는지 보장할 수 있다.

함수 타입을 활용한 예시


TypeScript에서는 함수 타입을 별도로 정의할 수도 있다. 이는 함수 타입이 자주 사용될 때 유용하다.

함수 타입 별칭 사용

1
2
3
4
5
6
7
type GreetFunction = (name: string) => string;

const greet: GreetFunction = (name) => {
  return `Hello, ${name}!`;
};

console.log(greet('Bob')); // Hello, Bob!

이 예시에서는 GreetFunction 타입 별칭을 정의하고, 이를 사용하여 greet 함수의 타입을 지정했다.

선택적 인자와 기본값


함수 인자는 선택적(optional)일 수 있으며, 기본값(default value)을 가질 수도 있다.

선택적 인자와 기본값 예시

1
2
3
4
5
6
function greet(name: string, greeting: string = 'Hello'): string {
  return `${greeting}, ${name}!`;
}

console.log(greet('Alice')); // Hello, Alice!
console.log(greet('Alice', 'Hi')); // Hi, Alice!

이 예시에서는 greeting 인자가 선택적이며 기본값으로 ‘Hello’를 가진다.
이를 통해 함수 호출 시 두 번째 인자를 생략할 수 있다.

결론


TypeScript를 사용하여 함수의 인자 타입과 반환 타입을 정의하면 코드의
안정성과 가독성을 크게 향상시킬 수 있다.

함수 인자 타입을 명확하게 지정하면 잘못된 타입의 인자가 전달되는 것을 방지할 수 있고,
반환 타입을 명확하게 지정하면 함수가 올바른 타입의 값을 반환하는지 보장할 수 있다.

이를 통해 더욱 견고하고 유지보수하기 쉬운 코드를 작성할 수 있다.
TypeScript의 강력한 타입 시스템을 활용하여 안전하고 효율적인 코드를 작성해보자.

TypeScript 공식문서

This post is licensed under CC BY 4.0 by the author.