BaGyun
빠균's 개발노트
BaGyun
전체 방문자
오늘
어제
  • 분류 전체보기 (71)
    • Today I Learned (44)
      • 오류 (8)
      • JavaScript (15)
      • TypeScript (9)
      • NodeJS (0)
      • NestJS (0)
      • Database (3)
      • ORM (1)
      • 알고리즘 (2)
      • 개인공부 (4)
      • Deploy (0)
      • Git (1)
    • 개인프로젝트 (4)
    • 알고리즘 (14)
      • 프로그래머스 (14)
    • 면접질문 (5)
    • 회고 (3)

인기 글

반응형

블로그 메뉴

  • 홈
  • 태그
  • 방명록
hELLO · Designed By 정상우.
BaGyun

빠균's 개발노트

Today I Learned/TypeScript

[TypeScript] Nomad Coder - TypeScript 2주 챌린지(3일차)

2022. 7. 27. 13:08

Call Signatures

함수에 대한 타입을 만들 수 있고, 함수가 어떻게 작동하는 지 서술할 수 있다.

즉, 함수의 인자(arguments)의 타입과 함수의 반환 타입을 정해줄 수 있다.

type Add = (a:number, b: number) => number // 이러한 형식을 call signatures 라고 불림

const add:Add = (a,b) => a+b

Overloading

오버로딩은 함수가 여러개의 Call Signatures를 가지고 있을 때 발생시킨다.

예시1.

type Config = {
  path: string,
  state: object
}

type Push = {
  (path: string): void
  (config: Config): void
}

const push:Push = (config) => {
  if(typeof config === "string") { console.log(config) } // config의 타입을 stirng 지정
  else { 
    console.log(config.path, config.state) // type Config의 객체를 가지고 올 수 있다.
  }
}

예시2.

type Add = {
  (a: number, b:number) : number,
  (a: number, b:number, c:number): number
}

const add : Add = (a, b, c?:number) => { //c를 optional하게 사용할 수 있다.
  if(c) return a+b+c
  return a+b
}

const add : Add = (a, b, c) => { // 이 함수는 c 타입을 지정해주지 않았기 때문에 에러가 발생한다.
  return a+b
}

'Today I Learned > TypeScript' 카테고리의 다른 글

[TypeScript] Nomad Coder - TypeScript 2주 챌린지(5일차)  (0) 2022.07.29
[TypeScript] Nomad Coder - TypeScript 2주 챌린지(4일차)  (0) 2022.07.28
[TypeScript] Nomad Coder - TypeScript 2주 챌린지(2일차)  (0) 2022.07.26
[TypeScript] Nomad Coder - TypeScript 2주 챌린지(1일차)  (0) 2022.07.25
[TypeScript] Nomad Coder - TypeScript 2주 챌린지  (0) 2022.07.25
    'Today I Learned/TypeScript' 카테고리의 다른 글
    • [TypeScript] Nomad Coder - TypeScript 2주 챌린지(5일차)
    • [TypeScript] Nomad Coder - TypeScript 2주 챌린지(4일차)
    • [TypeScript] Nomad Coder - TypeScript 2주 챌린지(2일차)
    • [TypeScript] Nomad Coder - TypeScript 2주 챌린지(1일차)
    BaGyun
    BaGyun

    티스토리툴바