[TypeScript] Types of function

Dorong·2022년 12월 26일
0

TypeScript

목록 보기
9/15

Types of parameter and return value

  • 함수에서는 파라미터와 리턴값에 대해 타입을 지정
  • 타입을 지정하지 않으면 자동으로 any타입이 설정됨!!
  • 파라미터에는 바로 붙여서 타입을 넣어주고,
  • 리턴타입은 파라미터 소괄호()와 실행문 중괄호{} 사이에 넣어준다!!

    function sayHi(name : string) : string {
       return 'Hi' + name;
    }



여러 타입 활용과 주의점

  • 아무것도 리턴하고 싶지 않다면, void타입을 활용할 수 있다.

    function sayHello(name : string) : void {
       console.log('Hello' + name);
    }

  • union type을 활용할 수 있다.

    function numStr(data : number | string) : void {
       console.log(data);
    }

  • 한가지 주의점이 있다면, 함수에 파라미터와 타입까지 지정해주면 JavaScript와 달리 해당 파라미터를 필수로 넣어줘야함

  • 옵션으로 넣고 싶다면 '?'(Optional Chaining)를 활용할 수 있음

    function printData(data ?: number | string) : void {
       console.log('input : ' + data);
    }
    printData(123);   // 출력 => input : 123
    printData();   // 출력 => input :



✅ Never type

  • 함수의 return 타입으로 never 타입을 붙일 수 있는데,그렇게되면!!
  • return 값이 없어야하고, 함수 실행의 끝 또한 없어야 한다(while 무한반복 등)
  • 사실 정상적으로 return을 없애려면 void로 대체 가능
  • but❗️ never는 가끔 코드가 잘못 짜여졌을 때 등장을 한다!!

    // 예시
    function strFun(str : string){
       if(typeof str == 'string'){
           console.log(str);
       }else{
           console.log(str + 'not string');
       }
    }

  • 위 함수를 보면 어차피 string 형식의 파라미터만 받는데 narrowing으로 string이 아닌 상황을 가정하고 있음
       => 이때 else 실행문 내부의 파라미터 변수 str의 타입을 확인해보면 "never"임
  • 사실상 never은 코드가 뭔가 이상하다는 것을 알려줌
  • 발생시 원인을 파악하고 수정할 필요가 있음!!





🌟 잘못된 부분에 대한 말씀은 언제나 저에게 큰 도움이 됩니다. 🌟
👍 감사합니다!! 👍

profile
🥳믓진 개발자가 되겠어요🥳

0개의 댓글