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

如何用TypeScript实现共享逻辑下多类型兼容的函数参数

实现兼容多类型的通用计数函数

你可以通过TypeScript泛型抽象重复的类型逻辑,把两个结构一致的函数合并成一个通用函数,完美兼容TypeA、TypeB及其他任意类型:

// 通用泛型函数,T代表任意目标类型(TypeA/TypeB/TypeC)
export const countItems = <T>(): ((
    value: [string, T[] | undefined],
    index: number,
    array: [string, T[] | undefined][]
) => [string, number | undefined]) => {
    return ([key, items]) => {
        // 保留你原来的计数逻辑,示例逻辑如下:
        return [key, items ? items.length : undefined];
    };
};

// 基于通用函数生成原有的类型专属函数(可选,也可直接调用countItems<TypeA>())
export const countTypeAs = countItems<TypeA>;
export const countTypeBs = countItems<TypeB>;

// 扩展支持TypeC的示例
export const countTypeCs = countItems<TypeC>;

核心要点:

  • 用<T>声明泛型参数,让函数可以适配任意元素类型的数组
  • 把原函数中硬编码的TypeA/TypeB替换为泛型T,核心计数逻辑无需改动
  • 既可以直接通过countItems<目标类型>()的方式调用,也可以预先定义类型专属的变量,保持原有代码的调用习惯
  • 计数逻辑只依赖数组的基础特性(存在性、长度),不绑定具体元素类型,天然支持扩展到TypeC等新类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:02:03