ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TypeScript #3 함수
    공부/TypeScript 2021. 6. 24. 14:27

    타입스크립트 함수

    : 타입스크립트에서는 타입을 정의할 수 있다

    1. 함수의 파라미터(매개변수)
    2. 함수의 반환 타입
    3. 함수의 구조 타입

    함수 선언

    function sum(a: number, b: number): number {
      return a + b
    }

    -> 함수의 매개변수와, 반환 값에 타입을 추가
    -> 반환 값에 타입을 정하지 않을 때 : void 사용

    함수의 인자

    매개 변수

    • 타입스크립트에서는 함수의 인자를 모두 필수 값으로 간주한다
    • 매개 변수를 설정하면 undefined 나 null 이라도 넘겨야한다
    • 컴파일러에서 값이 넘어왔는지 확인하기 때문
        -> 정의된 매개변수 값만 받을 수 있고 추가로 인자를 받을 수 없다
    • function sum(a: number, b: number): number {
        return a + b
      }
      sum(10, 20)
      sum(10, 20, 30) // Error
      sum(10)         // Error

    선택 매개 변수

    • 변수명 뒤에 ' ? ' 를 붙인다
    • 선택 매개 변수로 지정한 변수는 생략 가능
    • 선택 매개 변수는 초기 값을 사용할 수 없다
    • function sum(a: number, b?: number): number {
        return a + b
      }

    undefined 로 에러 표시가 날 때

    • tsconfig.json 파일에서 추가한다
    • "strictNullChecks": false

    매개 변수에 초기 값을 주기

    • function sum(a: number, b = 100): number {
        return a + b
      }

    전개 연산자를 사용해서 매개 변수 전달

    • function sum(a: number, ...nums: number[]): number {
        let total = 0
      
        for(let i in nums) {
          total += nums[i]
        }
      
        return a + total
      }

      함수 오버로드

    • 함수명은 같지만 매개변수와 반환 타입이 다른 함수를 여러개 선언하는 것

    • 컴파일시 가장 적합한 오버로드를 선택해서 컴파일 한다 -> 런타임 비용이 발생하지 않는다

    • 목록 형태로 선언

    • 모든 타입이 any 인것은 맨 아래에 선언한다

    • function sum(a: string, b: string): string
      function sum(a: number, b: number): number
      function sum(a: number, b: string): number
      function sum(a: any, b: any): any {
        return a + b
      }

    • function sum(a: string, b: string): string
      function sum(a: number, b: number): number
      function sum(a: number, b: string): number
      function sum(a: number): number
      function sum(a: any, b?: any): any {
        if (b === undefined) {
          return a
        } else {
          return a + b
        }
      }
    반응형

    '공부 > TypeScript' 카테고리의 다른 글

    TypeScript #2  (0) 2021.06.24
    TypeScript #1  (0) 2021.06.24

    댓글

Designed by Tistory.