Loading the catalog…
Loading the catalog…
본 문서는 Claude를 사용해 정리했습니다. 『실무로 통하는 타입스크립트』 함수 밖에서 인수/반환 타입 재사용하기 — Parameters와 ReturnType 상황 : 함수 안에서는 인수 타입과 반환 타입을 알 수 있지만, 그 타입을 함수 정의 바깥 에서도 써야 할 때가 있다. 해결 : 내장 헬퍼 타입 Parameters<F> 와 ReturnType<F> 를 쓴다. defer — 함수 호출을 나중으로 미루기 type Fn = (...args: any[]) => any; function defer<F extends Fn>( fn: F, ...args: Parameters<F> ): () => ReturnType<F> { return () => fn(...args); } Parameters<F> — 함수 F 의 매개변수 목록을 튜플 타입 으로 뽑아낸다. ReturnType<F> — 함수 F 의 반환 타입을 뽑아낸다. defer 는 함수와 그 함수에 넘길 인자들을 미리 받아두고, 인자 없이 호출하면 그제서야 원래 함수를 실행하는 함수 를 돌려준다. type Result = { page: URL; title: string; description: string; }; function search(query: string, tags: string[]): Promise<Result[]> { throw "to be done"; } const deferredSearch = defer(search, "tuple types", ["typescript"]); // deferredSearch의 타입: () => Promise<Result[]> 직접 검증한 결과, defer 는 다음을 전부 타입 레벨에서 강제한다. 인자 개수가 search 의 매개변수 개수와 정확히 일치해야 한다 (부족하면 TS2554: Expected 3 arguments, but got 2 ) 각 인자의 타입도 search 의 매개변수 타입과 일치해야 한다 (틀리면 TS2345: Argument of type 'number' is not assignable to parameter of type 'string' ) 최종 반환 타입( () => Promise<Result[]> )도 search 의 반환 타입에서 자동으로 이어진다 fn 을 직접 손으로 타이핑하지 않고, search 라는 이미 존재하는 함수 하나로부터 defer 의 모든 타입 제약이 자동으로 도출된다 는 게 이 패턴의 핵심이다. 함수 시그니처와 정확히 맞는 인자 목록 만들기 const searchParams: Parameters<typeof search> = [ "tuple types", ["typescript", "javascript"], ]; search(...searchParams); search 의 매개변수 타입이 바뀌면 searchParams 도 그에 맞춰 타입 검사가 자동으로 갱신된다. 별도로 [string, string[]] 처럼 타입을 직접 적어둘 필요가 없다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
2026.09.27 1일 1로그. 본 문서는 Claude를 사용해 정리했습니다. 『실무로 통하는 타입스크립트』 함수 밖에서 인수/반환 타입 재사용하기 — Parameters와 ReturnType 상황 : 함수 안에서는 인수 타입과 반환 타입을 알 수 있지만, 그 타입을 함수 정의 바깥 에서도 써야 할 때가 있다. 해결 : 내장 헬퍼 타입 Parameters 와 ReturnType 를 쓴다. defer — 함수 호출을 나중으로 미루기 type Fn = (...args: any[]) => any; function defer ( fn: F, ...args: Parameters ): () => ReturnType { return () => fn(...args); } Parameters — 함수 F 의 매개변수…