함수와 인수를 안전하게 조합하기
인수 튜플과 반환 타입을 유지하면서 함수를 조합하고, 타입 안전성을 유지하는 pipe/compose 도우미를 작성합니다.
함수와 인수를 안전하게 조합하기은(는) CoddyKit의 무료 TypeScript Academy 강의입니다. 이것은 3개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 TypeScript Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. TypeScript Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
소개
목표: 인수 정보를 잃지 않고 함수를 조합합니다. 가변 튜플을 사용하면 pipe/합성 도우미를 거치는 동안 전체 인수 튜플을 유지할 수 있습니다.
- 인수 개수와 이름 보존
- 각 단계에서 추론 유지
any없음, casts 없음
기본 합성
합성: 첫 번째 함수는 모든 인수(...args: A)를 받고, 두 번째 함수는 첫 번째 함수의 출력을 사용합니다. 인수 개수와 타입이 보존됩니다.
function compose<A extends any[], B, C>(g: (b: B) => C, f: (...args: A) => B) {
return (...args: A): C => g(f(...args))
}
function toLen(a: string, n: number) { return `${a}${n}`.length }
function isEven(x: number) { return x % 2 === 0 }
const c1 = compose(isEven, toLen)
const ok = c1("id", 99) // boolean파이프 도우미
pipe는 같은 개념을 반대 순서로 구현하므로 추론 흐름이 더 직관적입니다.
function pipe<A extends any[], B, C>(f: (...args: A) => B, g: (b: B) => C) {
return (...args: A): C => g(f(...args))
}
const p1 = pipe(toLen, isEven)
const ok2 = p1("xx", 7) // boolean함수 3개 이상 합성
함수가 3개 이상이어도 같은 패턴을 반복합니다. 튜플 A는 보존되고 중간 반환값은 연결됩니다.
function compose3<A extends any[], B, C, D>(h: (c: C) => D, g: (b: B) => C, f: (...args: A) => B) {
return (...args: A): D => h(g(f(...args)))
}
function toUpper(s: string) { return s.toUpperCase() }
const c3 = compose3(toUpper, (x: number) => x.toString(), toLen)
const val = c3("a", 5) // "2" → then upper → "2"앞부분 바인딩
bindHead: 전체 인수 앞에 값을 붙여 인수가 0개인 함수를 생성합니다. 데모 목적으로만 사용합니다(실제로는 Parameters를 사용해 더 유연하게 만들 수 있습니다).
function bindHead<A extends any[], B>(fn: (...args: A) => B, ...head: A) {
return (...rest: []): B => fn(...head)
}
const bh = bindHead(toLen, "x", 42)
const r = bh() // number팁
팁:
도우미에서 any를 피하십시오. 추론 연결이 끊어집니다.
필요하다면 반환 형식을 명시하십시오. 개발 경험이 향상됩니다.
여러 단계의 합성에서는 지나치게 일반적인 도우미 대신 작은 도우미를 선택하십시오.
합성 시그니처 확인
빠른 확인: 원본 인수 튜플을 보존하는 합성 시그니처는 무엇입니까?
복습
복습: 가변 튜플로 인수를 보존하면서 합성 및 pipe를 작성했습니다. 인수 개수와 타입을 잃지 않고 흐름을 구성했습니다.
자주 묻는 질문
“함수와 인수를 안전하게 조합하기” 강의는 무료인가요?
네 — “함수와 인수를 안전하게 조합하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 TypeScript Academy 강의 전체를 잠금 해제할 수 있습니다. TypeScript Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
“함수와 인수를 안전하게 조합하기”에서 뭘 배우나요?
인수 튜플과 반환 타입을 유지하면서 함수를 조합하고, 타입 안전성을 유지하는 pipe/compose 도우미를 작성합니다. 브라우저에서 직접 실행하는 실습 코드로 TypeScript Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
TypeScript Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 TypeScript Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 2번째 강의입니다.
“함수와 인수를 안전하게 조합하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 TypeScript Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 TypeScript Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 튜플 나머지 요소와 커리 타입
- 함수와 인수를 안전하게 조합하기
- 강력한 타입의 빌더