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 | 29 | 30 | 31 |
Tags
- ai로 앱 만들기
- turborepo
- JS
- iframe
- typescript
- XFrameOptions
- 동료리뷰
- multiprocessing
- select tag
- 스타트업
- 테드스페이스
- 개발자
- html
- 리더
- 2인 사무실
- 좋은 리더란
- 느린 서버
- 구로 디지털 단지 사무실
- 빠른 서버
- React
- javascript
- 공유 오피스
- css
- python
- Regexp
- PM
- Django
- 구로 공유 오피스
- Domination Game
- select css
Archives
- Today
- Total
개발하는 일상
Typescript Function Overloading의 설명과 사용법(Function return type based on input parameter) 본문
개발 간단 팁
Typescript Function Overloading의 설명과 사용법(Function return type based on input parameter)
롯데빙빙바 2022. 6. 22. 01:59왜 Overloading이 필요할까?
typescript에서 함수를 정의하다보면 인자를 어떻게 주느냐에 따라 return type이 다르게 잡혔으면 싶을 때가 있습니다. 예를 들면,
function read(str?: string) {
return str
}
const word = read('hello world') // string | undefined
여기서 함수 read
의 return type은 str
에 의해 결정되는 것이 아니라 항상 string|undefined
형태의 union type을 갖습니다.
즉, word
의 type은 string | undefined
입니다. 'hello world'
의 type은 string
인데도 말이죠.
이럴때 함수를 여러번 쌓아서 정의하면(overloading) 문제를 해결할 수 있습니다.
overloading 사용법
// 타입 선언 with overloading
function read():void
function read(str:string):string
// 실제 함수 선언
function read(str?:string){
return str
}
const withoutInput = read() // void
const withInput = read('hello world') // string
// 화살표 함수 형태로는
const read:{():void; (str:string):string} = (str?:string) => str
위 예시에서 withoutInput
은 void
type을, withInput
은 string
type을 갖게 됩니다.
'개발 간단 팁' 카테고리의 다른 글
github copilot 2년동안 사용한 사람의 활용 팁 (1) | 2024.03.17 |
---|---|
예쁜 select 태그를 만들고 싶다면 꼭 알아야 하는 속성 tabIndex (0) | 2023.12.24 |
history.go와 history.pushState의 실행 순서(order of history.go and history.pushState) (0) | 2022.06.21 |
javascript parseInt가 이상하다면? (0) | 2021.10.24 |
js 정규표현식으로 cli와 비슷하게 문자열 구분하기(javascript split string by space, but ignore space in quotes) (0) | 2021.04.28 |
Comments