Typescript API 설계: 단일 호출 가능 또는 다중 호출 가능
커링은 하나의 함수를 여러 콜러블로 변환하는 과정인데 여기서는 매개변수의 개수에 따라 다른 함수를 반환하는 함수라고 합니다.
Typescript를 사용하여 어떤 패턴을 사용하여 API를 어떻게 설계하시겠습니까?
A. 일반 단순 기능
const travel = (destination, transportation) => {
// do something
}
B. 카레 형태
const travel = (destination) => (transportation) => {
// do something
}
C. 메소드 체이닝
const travel = (destination) => {
return {
transport: (transportation)=>{
// do something
}
}
}
커링과 메소드 체이닝은 여러 콜러블을 포함하는 반면 일반 함수는 하나의 콜러블만 포함하기 때문에 비슷합니다.
나는 호출할 때 오류가 덜 발생하는 매우 간단한 이유로 단일 호출 가능을 선호합니다.
여기 당신이 그들을 부르는 방법이 있습니다. 우리는 Typescript를 사용하고 있음을 명심하십시오
A. 일반 기능
travel('North Pole', 'swimming') // ok
travel('North Pole') // ts error
B. 커링
travel('North Pole')('swimming') // ok
travel('North Pole')() // ts error
travel('North Pole') // ok, but do nothing, no ts error
C. 메소드 체이닝
travel('North Pole').transport('swimming') // ok
travel('North Pole').transport() // ts error
travel('North Pole') // ok, but do nothing, no ts error
보시다시피 Typescript로 일반 함수를 잘못 호출하는 것은 불가능합니다.
그러나 이것은 주의를 기울이지 않으면 부분적으로 호출할 수 있는 커링 및 메서드 체인과 동일하지 않습니다.
여전히 커링과 메소드 체이닝은 인수를 재사용하는 데 좋습니다.
const goToNorthPoleWith= travel('North Pole')
goToNorthPoleWith('Airplane')
goToNorthPoleWith('Ship')
따라서 두 세계의 장점을 모두 얻으려면 항상 단일 콜러블에서 시작해야 하며 인수를 재사용하려면 나중에 커리할 수 있습니다.
Reference
이 문제에 관하여(Typescript API 설계: 단일 호출 가능 또는 다중 호출 가능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tylim88/typescript-api-design-single-callable-or-multiple-callable-5gjn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)