Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 유니티기초
- 파이썬 기초
- jpa 게시판
- 유니티Material
- springboot 게시판 프로젝트
- typescript 기초문법
- 스프링부트 게시판만들기
- spring jpa 게시판
- 스프링부트 회원가입
- 스프링부트 update
- python 괄호 회전하기
- springboot 게시판만들기
- 타입스크립트 기초
- 스프링부트 미니프로젝트
- 스프링 게시판 만들기
- 타입스크립트 기초문법
- springboot 사이드프로젝트
- 스프링게시판프로젝트
- 프로그래머스 괄호 회전하기 python
- spring jpa 사이드프로젝트
- 타입스크립트 기본문법
- 유니티
- springboot 미니프로젝트
- springboot 게시판
- 괄호 회전하기 파이썬
- 스프링부트 블로그만들기
- JS기초
- 스프링부트 블로그
- 파이썬 괄호 회전하기
- 유니티Cube
Archives
- Today
- Total
Digking's cave
TypeScript 기본 / 기초문법 ) Overloading 본문
728x90
Overloading
함수가 서로 다른 여러개의 call signature 가지고 있을 때 사용한다.
type Add = {
(a : number , b : number ) : number
(a : number , b : string ) : number
}
const add : Add = (a,b) => {
if(typeof b === 'string') return a
return a + b
}
Router.push({
path : "/home",
state:1
})
위와 같이 라우터 기능에서 home으로 페이지 이동하라는 내용의 코드를
아래의 오버로딩 사용한 코드로 작성 가능하다.
type Config = {
path : string,
state : obeject
}
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)
}
}
다른 여러개의 argument를 가지고 있을 때도 사용할 수 있다.
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
}
call signature의 매개변수가 다르기 때문에,
이 때 c는 옵션이다.
c는 number라는 걸 알려주기 위해 물음표를 붙여주고, c가 있는 경우와 없는경우 각각에 대해 return 설정해준다.
반응형
'기초 > TypeScript' 카테고리의 다른 글
TypeScript 기본 / 기초문법 ) Polymorphism / Generic (0) | 2022.08.24 |
---|---|
TypeScript 기본 / 기초문법 ) Call Signature (0) | 2022.08.23 |
TypeScript 기본 / 기초문법) Tuple / Any /unknown / void / never (0) | 2022.08.19 |
TypeScript 기본 / 기초문법 ) 함수 선언 / 인자 있는 함수 선언 / 리턴값 함수 (0) | 2022.08.19 |
TypeScript 기본 / 기초문법 ) 기본 변수 선언 / 변수 타입 지정 / 변수 ReadOnly 설정 (0) | 2022.08.19 |