[TS/JS] 처리를 공통화하는 기술
9890 단어 Node.jsTypeScript함수 프로그래밍jstech
세상에는 흥분되는 일이 많지만, 가장 흥분되는 것은 고급 함수를 정의할 때다!
const add3 = (x: number) => x+3
const double = (x:number) => x*2
const main1 = () => (n :number) => {
const x = add3(n+3)
// ↓同じ処理
const y = double(x)
const z = double(x+y) + add3(y-x) + 7
return (z+1).toString()
}
const main2 = () => (n :number) => {
const x = add3(n-1)
// ↓同じ処理
const y = double(x)
const z = double(x+y) + add3(y-x) + 7
return (z+1).toString()
}
위에서 말한 바와 같이 x의 값만 다르지만 이후의 처리는 같다.mainN 함수가 증가함에 따라 같은 처리를 여러 번 쓸 수 있습니다.
이런 상황을 피하기 위해서 함수를 포괄하는 방법이 있다.
'wrapper 함수'라고도 하죠.
4
// ここで関数の型をかくのが面倒なので関数を表す型に名前をつけます。
type Reader<A, B> = (args: A) => B;
const wrapper = (wrapped: Reader<number, number>): Reader<number, string> => (item => {
const x = wrapped(item)
const y = double(x)
const z = double(x+y) + add3(y-x) + 7
return (z+1).toString()
})
'wrapper 함수'를 사용하면 다음과 같은 개작을 할 수 있다.const main1 = () => wrapper((n :number) => add3(n + 3))
const main2 = () => wrapper((n :number) => add3(n - 1))
Reference
이 문제에 관하여([TS/JS] 처리를 공통화하는 기술), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/mura_chan/articles/a0fcf91b646a3e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)