본문 바로가기

공부/TypeScript

타입스크립트 챌린지 (3)

Call Signature 

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

 

Overloading

- Call Signature이 여러개 있을 때, 주로 아래와 같이 사용

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

const add:Add = (a, b, c?:number) => {
    if(c) return a+b+c
    return a+b
}

 

- 하지만, 이렇게 사용할 수도 있음

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)}
    else{
        console.log(config.path, config.state)
    }
}