SuperAPI AI 工具集

currying-inference

通用与其它

查看项目

更新于 10-16 00:06

技能介绍

用途:当 TypeScript 无法推断泛型类型参数时,通过创建新的“推断点”让类型自动推断。适用于泛型未被推断、构建器模式需要类型推断、链式方法丢失类型信息,以及设计引导推断的 API 等场景。

主要能力:TypeScript 只在函数调用和类实例化处推断泛型。资料给出的手段包括:在参数中加入解析函数(如 parser: (raw: unknown) => T)提供推断点;使用柯里化把推断分散到多次调用;用类与构建器模式在构造或方法调用处推断;用工厂函数从初始值推断;用类型映射(如 EventMap)让事件名与数据类型关联;用约束 K extends keyof T 改善推断;用 select 等方法让链式调用的类型逐步演化。

必要用法:避免类型参数只出现在返回位置,例如 function parseJson<T>(): T 无法推断,应改为接收 parser 参数或使用工厂模式。资料中的示例命令与代码保持原样,如 declare function fetchData<T>(url: string, parser: (raw: unknown) => T): Promise<T>; 以及 function makeRequest<T>() { return (url: string): Promise<T> => ... }。

限制与提醒:资料强调类型断言会绕过类型检查,应优先设计可推断的 API;若用户总需显式写泛型参数,或出现 unknown/any、需要断言才能得到正确类型,属于需要重新考虑的警示信号。具体实现细节与更多示例以原文为准。