[Typescript] 함수

hyo·2023년 1월 23일
0

TypeScript

목록 보기
3/6
post-thumbnail

Typescript 에서의 함수

함수의 기본적인 타입 선언

function A(a,b,c) { // js 함수
  return a + b + c;
}

-----------------------------
-> type 부여
function A(a: number, b: number, c: number): number {
   return a + b + c
}

-----------------------------
-> 반환값이 없거나 반환값에 타입을 정하지 않을 때는 void 라도 사용!
  
function A(a: number, b: number, c: number): void {
   console.log(a + b + c);
}

함수의 인자

Typescript 에서는 함수의 인자를 모두 필수 값으로 간주한다.
따라서, 함수의 매개변수를 설정하면 undefinednull이라도 인자로 넘겨야하며 컴파일러에서 정의된 매개변수 값이 넘어왔는지 확인한다.
-> 즉, 정의된 매개변수 값만 받을 수 있고 추가로 인자를 받을 수 없다는 의미!

// 일반 js 코드
function A(a,b,c) {
  return a + b + c;
}

A(1,2,3); -> 6
A(1,2,3,4) -> 6
A(1,2) -> Nan // 매개변수로 c 자리에 undefined가 들어가기 때문에.

// Type 부여
function A(a: number,b: number,c: number): number {
  return a + b + c;
}

A(1,2,3); -> 6
A(1,2,3,4) -> Error, too many parameters
A(1,2) -> Error, too few parameters

// 위와 같은 특성은 정의된 매개변수의 갯수 만큼 인자를 넘기지 않아도 되는 js 의 특성과 반대된다.
// js의 특성을 어느정도 살리고 싶다면 ? 를 사용해보자.
->
function A(a: number,b?: number,c?: number): number {
  return a + b + c;
}

A(1,2,3); -> 6
A(1,2,3,4) -> Error, too many parameters
A(1,2) -> 3

// 매개변수 초기화!
->  ES6 문법과 동일!
  
function A(a: number,b: number,c = 10): number {
  return a + b + c;
}

A(1,2,3); -> 6
A(1,2,3,4) -> Error, too many parameters
A(1,2,undefined) -> 13
A(1,2) -> 13

// Rest 문법이 적용된 매개변수
function sum(a: number, ...nums: number[]): number {
    let result = 0;
    for (let i in nums) {
      result = result + nums[i];
    }
    return a + result;
  }
sum(1,2,3,4) -> 10
profile
개발 재밌다

0개의 댓글