본문 바로가기
Programming/Typescript

[Typescript] 타입스크립트 함수

by Bam_t 2021. 12. 30.
728x90

타입스크립트의 함수는 자바스크립트의 함수에서 타입 기능을 더하기만 하면 됩니다. 물론 추가적인 주의사항도 있습니다. 타입스크립트에서 가장 중요한 점은 함수에서 만큼은 타입을 잘 적어두는 것이 중요합니다.


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

 

Documentation - More on Functions

Learn about how Functions work in TypeScript.

www.typescriptlang.org

728x90

'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

댓글