함수를 타입으로 정의하는 방법에 대해 알아보겠습니다.
Function Type
type Mapper = (x: string) => string;
Mapper는 문자열을 받아 다른 문자열을 반환하는 함수 타입을 정의합니다.
예를 들어, (x: string) => string는 문자열을 받아 "멤버: 문자열" 형태의 새로운 문자열을 반환하는 함수를 의미합니다.
const runner = (callback: Mapper) => {
return ['잘자세연', '누구세연', '안녕하세연'].map(callback);
}
console.log(runner((x) => `멤버 : ${x}`));
runner 함수는 Mapper 타입의 콜백 함수를 인자로 받아, 문자열 배열에 각 요소에 대해 콜백 함수를 적용한 결과를 반환합니다.
예시에서는 Mapper 타입의 콜백으로 문자열을 받아 "멤버: 문자열" 형태로 변환하는 함수를 전달하고 있습니다.
type MultiplyTwoNumbers = (x: number, y: number) => number;
MultiplyTwoNumbers는 두 개의 숫자를 받아 숫자를 반환하는 함수 타입을 정의합니다.
const multiplyTwoNumbers: MultiplyTwoNumbers = (x, y) => {
return x + y;
}
위에서 정의한 MultiplyTwoNumbers 타입의 함수를 구현한 예시로, 받은 두 숫자를 더한 값을 반환합니다.
Interface로 함수 선언
interface IMultiplyTwoNumbers {
(x: number, y: number): number;
}
IMultiplyTwoNumbers는 함수 타입을 나타내는 인터페이스로 두 개의 숫자를 받아 숫자를 반환하는 함수를 정의합니다.
const multiplyTwoNumbers3: IMultiplyTwoNumbers = (x, y) => {
return x * y;
}
IMultiplyTwoNumbers 인터페이스를 구현한 예시로 받은 두 숫자를 곱한 값을 반환합니다.
TypeScript에서 함수 타입은 매개변수와 반환 타입을 정의하는 방식으로 사용됩니다.
인터페이스를 사용하여 함수 타입을 정의할 수 있으며, 이를 통해 함수의 모양을 명시적으로 나타낼 수 있습니다.
함수를 선언하고 타입을 명시함으로써 코드의 가독성을 높이고, 잘못된 사용을 방지할 수 있습니다.
'Backend > TypeScript' 카테고리의 다른 글
| [TypeScript] Statement와 Expression(문장과 표현식) (0) | 2024.01.06 |
|---|---|
| [TypeScript] Overloading 오버로딩 (0) | 2023.12.30 |
| [TypeScript] 함수 정의하기 (0) | 2023.12.16 |
| [TypeScript] Narrowing(내로잉) (1) | 2023.11.27 |
| [TypeScript] Intersection (2) | 2023.11.10 |