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

TypeScript泛型推断出现未使用变量错误,如何正确解决?

解决TypeScript类型推断中未使用变量的TS6133错误

你给出的代码:

type Penultimate<T extends any[]> = T extends [
  ...infer Init,
  infer Result,
  infer Last,
]
  ? Result
  : never;

export type { Penultimate };

触发了以下错误:

error TS6133: 'Init' is declared but its value is never read.
error TS6133: 'Last' is declared but its value is never read.

不建议直接用// @ts-ignore忽略错误,更规范的解决方式是用下划线_命名未使用的推断变量,TypeScript允许用下划线表示“故意忽略的变量”,不会触发未使用变量的报错。

修改后的代码:

type Penultimate<T extends any[]> = T extends [
  ...infer _,
  infer Result,
  infer _,
]
  ? Result
  : never;

export type { Penultimate };

如果需要区分不同的忽略变量,也可以用_Init、_Last这类命名,同样不会触发错误:

type Penultimate<T extends any[]> = T extends [
  ...infer _Init,
  infer Result,
  infer _Last,
]
  ? Result
  : never;

export type { Penultimate };

这种方式比// @ts-ignore更合理,因为@ts-ignore会屏蔽该行所有错误,可能掩盖其他潜在问题;而用下划线命名明确传达了“这些变量是故意不使用的”意图,既解决了报错,又保持了代码的语义清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:04:51