You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用TypeScript编写一行柯里化sum函数实现sum(x)(y)=x+y

TypeScript实现柯里化加法函数sum(x)(y)

你之前写的是接受两个参数的普通函数,只能通过sum(2, 4)的方式调用,不符合sum(2)(4)的柯里化调用需求。要实现这种链式调用,需要让函数返回另一个函数,利用闭包保存第一个参数的值。

以下是两种符合要求的实现方式:

箭头函数写法(一行实现)

const sum = (x: number) => (y: number): number => x + y;

普通函数写法

function sum(x: number): (y: number) => number {
  return (y: number) => x + y;
}

调用验证:

const result = sum(2)(4); // 6
console.log('Result:', result);

原理说明:第一次调用sum(x)时,函数会返回一个新的函数,这个新函数通过闭包记住了外部的x值;当第二次调用传入y时,就会计算并返回x + y的结果。

内容的提问来源于stack exchange,提问作者Small Potato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:24:25