TypeScript는 JavaScript에 타입을 추가한 언어로, 함수의 매개변수와 반환값에 대한 타입 추론과 타입 어노테이션을 사용하여 코드의 가독성과 안정성을 확보할 수 있습니다.
매개변수의 타입 추론
TypeScript는 함수가 호출될 때 인자의 타입을 기반으로 매개변수의 타입을 추론합니다.
예를 들어, 아래의 add
함수는 매개변수 x
와 y
의 타입을 추론할 수 있습니다.
function add(x, y) {
return x + y;
}
이 경우, x
와 y
의 타입은 호출 시 전달되는 값에 따라 결정됩니다. 만약 x
와 y
에 숫자가 전달된다면 TypeScript는 이를 숫자 타입으로 추론합니다.
매개변수의 타입 어노테이션
타입 추론만으로 충분한 경우도 있지만, 코드의 가독성을 높이거나 특정한 타입을 강제하고 싶을 때 매개변수의 타입에 대한 어노테이션을 추가할 수 있습니다.
예를 들어, 아래의 subtract
함수는 매개변수 x
와 y
의 타입을 명시적으로 지정하고 있습니다.
function subtract(x: number, y: number): number {
return x - y;
}
이렇게 하면 매개변수 x
와 y
가 반드시 숫자 타입이어야 하며, 반환 값으로도 숫자 타입이어야 함을 명확하게 나타낼 수 있습니다.
반환값의 타입 추론
함수의 반환값에 대한 타입도 호출 시 반환되는 값의 타입을 기반으로 추론됩니다.
function greet(name: string) {
return `Hello, ${name}!`;
}
위의 예시에서 greet
함수는 name
매개변수의 타입을 문자열로 명시하고, 해당 함수는 문자열을 반환한다는 것을 타입 추론을 통해 파악할 수 있습니다.
반환값의 타입 어노테이션
마찬가지로, 반환값의 타입을 명시적으로 지정할 수 있습니다. 아래의 multiply
함수에서는 반환값의 타입을 명시적으로 지정하고 있습니다.
function multiply(x: number, y: number): number {
return x * y;
}
이렇게 함으로써 함수의 반환값이 반드시 숫자 타입이어야 함을 확실하게 할 수 있습니다.
결론
함수의 매개변수와 반환값에 대한 타입 추론과 타입 어노테이션을 사용하여 TypeScript에서 코드의 가독성을 높이고, 안정성을 강화할 수 있습니다. 타입 추론만으로 충분한 경우가 많지만, 명시적인 타입 어노테이션을 통해 의도를 명확히 드러내는 것이 중요합니다.
참조:
- https://www.typescriptlang.org/docs/handbook/functions.html
- https://www.typescriptlang.org/docs/handbook/type-inference.html