Typescript 공부 ( 4 ) - Typescript Type ( Function )

용스·2022년 9월 29일
0

Typescript

목록 보기
5/5

Typescript는 함수 타입을 지정할 수 있다.

예를 들어 두 수를 더하고 반환하는 함수가 있다고 하자

function add( n1 : number, n2 : number ) {
  return n1 + n2;
}

만약 함수를 할당하고 변수를 할당한 후, 컴파일하면 어떤 일이 발생할까?

function add( n1 : number, n2 : number ) {
  return n1 + n2;
}

let printAdd;

printAdd = add;
printAdd = 1;

컴파일 에러가 생기지 않는다.

그 이유는 let printAddany타입으로 선언되어 아무 것이나 할당 받을 수 있기 때문이다.

그래서 나온 타입 키워드가 바로 Function이다.

function add( n1 : number, n2 : number ){
  return n1 + n2;
}

let printAdd : Function;

printAdd = add;
printAdd = 1;


이런 식으로 함수만 할당 받을 수 있다고 에러 처리를 해준다.

printAdd에 두개의 숫자를 더하고 반환하는 함수만 할당하고 싶은데 지금 다른 함수를 할당하면 어떤 일이 벌어질까?

function numberAdd( n1 : number, n2 : number ) {
  return n1 + n2;
}

function stringAdd( n1 : string, n2 : string ) {
  return n1 + n2;
}

let printAdd : Function;

printAdd = numberAdd;
printAdd = stringAdd;

printAddFunction 타입을 받기 때문에 두개 함수 다 할당이 가능하다.

특정 함수 numberAdd만 할당 받게 하고 싶으면 다음과 같이 표현해야 한다.

function numberAdd( n1 : number, n2 : number ) {
  return n1 + n2;
}

function stringAdd( n1 : string, n2 : string ) {
  return n1 + n2;
}

let printAdd : ( n1 : number, n2 : number ) => number;

printAdd = numberAdd;
printAdd = stringAdd;

이렇게 화살표 함수로 인자를 선언하고 return 타입을 선언해주면 특정 함수만 할당 받을 수 있다.

profile
일단 해보자

0개의 댓글