타입스크립트의 함수는 자바스크립트의 함수에서 타입 기능을 더하기만 하면 됩니다. 물론 추가적인 주의사항도 있습니다. 타입스크립트에서 가장 중요한 점은 함수에서 만큼은 타입을 잘 적어두는 것이 중요합니다.
1. 함수 선언
타입스크립트의 함수는 다음과 같이 선언합니다. 자바스크립트와는 다르게 반환값에 타입을 지정한다는 것도 큰 특징입니다.
function 함수명(인자: 타입, ...): 반환값 타입 {}
function add(x: number, y: number): number {
return x+y;
}
반환값 타입에는 void라는 값이 올 수도 있는데, 값을 반환하지 않는 함수는 타입이 void가 됩니다.
function sayHi(): void {
console.log('Hi!');
}
애로우 함수도 마찬가지로 타입과 반환값 타입을 주어서 선언합니다.
const sub = (x: number, y: number): number => x - y;
2. 함수 시그니처
함수 시그니처(Function Signature)는 함수의 타입을 의미합니다. 함수의 타입은 함수의 인자의 타입과 반환 값의 타입을 의미합니다. 시그니처는 다음과 같이 작성합니다.
(매개변수: 타입, ...) => 반환값 타입
function add(x: number, y: number): number {
return x+y;
}
위 함수의 타입은 인자 x: number, y: number 그리고 반환값 타입 number가 있습니다. 따라서 시그니처는 (number, number) => number가 됩니다. 사용은 다음과 같이 할 수 있습니다.
const addFunc: (param1: number, param2: number) => number = (x: number, y: number): number => x + y;
3. 타입 별칭
타입 별칭(Type alias)은 type 키워드로 기존의 타입에 이름을 붙여서 이용할 수 있게 하는 것입니다. 위의 코드에서 함수 시그니처를 지정하고 함수를 선언하지 코드가 너무 길어지고 복잡해보인다는 단점이 있습니다. 그래서 위와 같은 상황을 해결하고자 타입 부분은 타입 별칭으로 빼내고 간결하게 이용합니다.
type 새로운 타입명 = 기존 타입;
type func1 = (param1: number, param2: number) => number;
const addFunc: func1 = (x: number, y: number): number => x + y;
4. 선택 매개변수 Optional Parameter
함수도 객체나 인터페이스처럼 ? 기호를 통해서 선택 속성을 붙일 수 있습니다.
const func = (a: number, b?: string): void => {}
참조
https://www.typescriptlang.org/docs/handbook/2/functions.html
'Programming > Typescript' 카테고리의 다른 글
[Typescript] 배열 (0) | 2021.12.31 |
---|---|
[Typescript] 메소드 (0) | 2021.12.31 |
[Typescript] 타입 단언 (0) | 2021.12.30 |
[Typescript] 클래스 (0) | 2021.12.29 |
[Typescript] 인터페이스 (0) | 2021.12.29 |
댓글