---
type: snippet
tags: ['typescript']
status: release
ctime: 2025-01-01
mtime: 2025-01-01
---

두 개의 오버로딩된 메서드에서 각각의 반환 타입을 명시적으로 추출하기

```ts
type Year = {
  year(): number
  year(u: string): string
}

type ReturnTo<T, R> = T extends R ? R : never

type GetYear = ReturnTo<Year['year'], () => number>
type SetYear = ReturnTo<Year['year'], (u: string) => string>
```
