본문 바로가기

Web/TypeScript

[TypeScript] 기본 문법 - 함수

함수를 선언하는 여러가지 방법

#1 
function add(a:number, b:number): number {
    return a+b
}

#2
const add = (a:number, b:number) => a+b

#3; call signatures, 함수의 파라미터와 리턴 타입을 명시하는 것
type Add = (a:number, b:number) => number;

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

 

Overloading

- 직접 쓸 일은 많지 않겠지만 외부 패키지나 라이브러리에서는 오버로딩을 많이 사용하기 때문에 알아둘 필요가 있음

- 함수가 서로 다른 여러 개의 call signatures를 가지고 있을 때 발생

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

const add: Add = (a, b) => a + b # error 발생, 타입 스크립트는 b가 number일 수도, string일 수도 있어서 + 를 적용할 수 없다고 띄움
# 타입 체크 해야됨
# string을 보내거나 object를 보내거나
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)
    }
}
# 파라미터 개수가 다른 경우
type Add = {
    (a:number, b:number) : number
    (a:number, b:number, c?:number) : number
}

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

add(1, 2)
add(1, 2, 3)

'Web > TypeScript' 카테고리의 다른 글

[TypeScript] Interfaces  (0) 2024.07.07
[TypeScript] 객체지향 - Classes  (0) 2024.07.05
[TypeScript] 다형성(Polymorphism)  (0) 2024.07.05
[TypeScript] 기본 문법 - Type  (1) 2024.07.04
[TypeScript] 를 쓰는 이유  (0) 2024.07.04