함수 인자 타입과 반환 타입 정의하기
함수 인자 타입과 반환 타입 정의 개념정리
함수 인자 타입과 반환 타입 정의하기
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의 강력한 타입 시스템을 활용하여 안전하고 효율적인 코드를 작성해보자.