如何为返回函数设置泛型约束使其包含前一个泛型的子集?
为函数式风格的数组变异函数添加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
相关产品推荐
相关产品推荐

