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

如何扩展SortingStrategy函数类型,为参数对象添加可选属性?

实现方式

你可以通过 TypeScript 的工具类型复用原类型的参数定义,不用重新编写全部属性,具体实现如下:

  • 用 Parameters 工具类型提取原 SortingStrategy 函数的参数类型
  • 将提取到的参数类型与新增的可选属性做交叉类型
  • 基于交叉后的参数类型,重新构造扩展后的函数类型

示例代码:

// 先导入原库的类型
import type { SortingStrategy, Transform } from '你的库名';

// 提取原函数的参数类型
type OriginalSortingArgs = Parameters<SortingStrategy>[0];

// 定义扩展后的参数:原参数 + 可选的 container 属性
type ExtendedSortingArgs = OriginalSortingArgs & {
  container?: HTMLElement | null; // 可根据需求调整 container 的具体类型
};

// 构造扩展后的 SortingStrategy 类型
type ExtendedSortingStrategy = (args: ExtendedSortingArgs) => ReturnType<SortingStrategy>;

如果要在代码里直接用扩展后的类型替换原别名,也可以简化成:

import type { SortingStrategy as OriginalSortingStrategy } from '你的库名';

type SortingStrategy = (
  args: Parameters<OriginalSortingStrategy>[0] & {
    container?: HTMLElement | null;
  }
) => ReturnType<OriginalSortingStrategy>;

这样就能在完全复用原类型所有参数的基础上,新增可选的 container 属性,不用重复编写原类型的全部字段。

内容的提问来源于stack exchange,提问作者jordão França Barroso

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:34:51