옝옹
냠
옝옹
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • [LG유플러스]유레카 SW (5)
    • React (20)
    • JS (17)
    • TypeScript (5)
    • CSS & HTML (1)
    • 알고리즘 (11)
    • JAVA (20)
    • GIT (1)
    • 자격증 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 혼자공부하는자바
  • 변수선언
  • fillter
  • 템플릿리터럴
  • useCallback
  • java
  • map
  • 인스턴스멤버
  • 화살표함수
  • template literal
  • JavaScript
  • TypeScript
  • 자바스트립트
  • join() 메서드
  • 리액트를다루는기술
  • match()
  • useState
  • 함수선언
  • js
  • useEffect
  • break문
  • sort() 메서드
  • 정적멤버
  • 접근제한자
  • reduce
  • do-while문
  • 노마드코더
  • indexOf()
  • 자바
  • join()
  • switch문
  • java.util패키지
  • reverse() 메서드
  • 자바스크립트
  • continue문
  • 혼자 공부하는 자바
  • java.lang패키지
  • useRef
  • Node.js
  • useMemo
  • 리액트
  • 타입스크립트
  • ==
  • 기본api클래스
  • toFixed
  • map() 함수
  • 코드스플리팅
  • While문
  • 타입변환
  • 백준

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
옝옹

냠

[TS] Typescript #day3
TypeScript

[TS] Typescript #day3

2024. 12. 18. 23:58

# Call Signatures

-> 함수 위에 마우스를 올렸을 때 보게 되는 것

 

  • 해당 코드의 변수나 함수의 타입을 알려줌
  • 함수를 구현하기 전에 타입을 만들 수 있고, 함수가 어떻게 작동하는지 서술해둘 수 있음
type Add = (a: number, b:number) => number;
const add:Add = (a,b) => a+b

 

 

# Overloading

-> 함수 이름은 같지만 매개변수 또는 반환값의 타입이 다른 함수

type Add2 = {
    (a: number, b: number): number
    (a: number, b: string): number
}

const add5: Add2 = (a, b) => {
    if(typeof b === 'string') return a
    return a + b
}

- Add2의 call signatures를 보면 b의 타입이 number 와 string 동시에 지정되어 있다.

 

[ EX 1 ] call signatrues에 파라미터 타입이 다른 경우

type Config = {
    path: string,
    state: object
}
type Push = {
    (path:string): void
    (config:Config): void
}
// Push 타입은 string과 object를 받을 수 있음
const push:Push = (config) => {
    if(typeof config === "string") console.log("do something")
    else {
        console.log(config.path)
    }
}

 

[ EX 2 ] call signatrues에 파라미터 개수가 다른 경우

type Add3 = {
    (a: number, b: number): number
    (a: number, b: number, c: number): number
}
// c는 옵션(선택사항)이라는 표시로 ? 사인을 넣어줌
const add6:Add3 = (a, b, c?: number) => {
    return a + b
}
저작자표시 비영리 변경금지 (새창열림)

'TypeScript' 카테고리의 다른 글

[TS] Typescript #day2  (2) 2024.12.18
[TS] Typescript #day1  (2) 2024.12.16
[TypeScript] 타입스크립트란?  (2) 2024.02.26
[Error] addCase cannot be called with two reducers for the same action type  (3) 2023.11.23
    'TypeScript' 카테고리의 다른 글
    • [TS] Typescript #day2
    • [TS] Typescript #day1
    • [TypeScript] 타입스크립트란?
    • [Error] addCase cannot be called with two reducers for the same action type
    옝옹
    옝옹

    티스토리툴바