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

如何在TypeScript接口属性中推断transformArgs返回值类型?

问题描述

我实现了一个记忆化函数(memoizer),可在参数比较前对其进行转换,示例代码如下:

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

const memoSum = memo(sum, {
  // 接收数字数组([x, y])并转换为字符串(如`${x},${y}`)
  transformArgs: (args) => args.join(','),

  // 接收转换后的参数(此例中为字符串)
  isEqual(a, b) => a === b
})

请问是否可以编写一个接口,仅当提供transformArgs时,自动推断isEqual的参数a和b的类型?期望的接口形式如下:

interface MemoOptions<F extends AnyFunction> {
  transformArgs(args: Parameters<F>): TransformedArgsHereDefaultsToParametersF;
  isEqual(a: TransformedArgsHereDefaultsToParametersF, b: TransformedArgsHereDefaultsToParametersF): boolean;
}

编辑补充:已完成解决方案的TypeScript Playground示例,感谢帮助!


内容的提问来源于stack exchange,提问作者David S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 01:43:20