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

如何为返回函数设置泛型约束使其包含前一个泛型的子集?

为函数式风格的数组变异函数添加TypeScript类型约束

我知道这可能是重复问题,但搜索许久仍未找到能理解的资料。我正尝试为数组变异的函数式编程方式添加类型定义。

我已经实现了非函数式风格的版本,类型约束正常工作:

const pushAll = <Values extends ArrayValues, ArrayValues>(
  values: Values[],
  arrayValues: ArrayValues[]
) => {
  arrayValues.push(...values)
  return arrayValues
}

但我希望改成柯里化的函数式风格,目前写出了如下代码,但不知道如何约束ArrayValues包含Values的子集:

// 是否可以约束`ArrayValues`包含`Values`的子集?
const pushAll = <Values>(values: Values[]) => <ArrayValues>(arrayValues: ArrayValues[]) => {
  arrayValues.push(...values)
  return arrayValues
}

请问该如何为这个函数式版本添加正确的类型约束?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 06:50:12