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

如何调整TypeScript类型推断代码以规避no-explicit-any规则?

解决TypeScript类型推断中no-explicit-any规则报错的替代方案

你可以用unknown替代any来规避规则报错,同时不影响类型推断的效果。修改后的代码如下:

export type InferSomething<T> = T extends (...args: unknown[]) => Promise<infer U> ? U : never;

为什么这个方案可行?

  • unknown是TypeScript中更安全的顶层类型,不会像any那样绕过类型检查,完全符合no-explicit-any规则的设计初衷。
  • 这里我们只需要匹配任意参数列表的函数,unknown[]足以覆盖所有可能的参数类型组合,依然能正确推断出Promise包裹的返回类型U。

验证示例

假设有如下异步函数:

async function getUserInfo(userId: number): Promise<{ name: string; age: number }> {
  return { name: "Alice", age: 30 };
}

使用修改后的InferSomething:

type UserInfo = InferSomething<typeof getUserInfo>;
// 类型将被正确推断为 { name: string; age: number }

这个方案无需禁用任何ESLint规则,既保持了类型推断的正确性,也遵循了TypeScript的类型安全规范。

内容的提问来源于stack exchange,提问作者Page not found

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:12:33