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

TypeScript同类型函数参数是否有简洁的类型标注简写方式?

TypeScript 简化重复参数类型标注方案

完全可行,不需要单独定义命名接口就能省去重复的参数类型标注,以下是几种常用写法,适配不同的传参习惯:

  • 保留原有位置传参逻辑(调用形式为setColor(255, 0, 0, 1)):用元组类型结合剩余参数一次性声明所有参数类型,不需要逐个给参数写:number标注
function setColor(...[r, g, b, a]: [number, number, number, number]) {
  // 函数内部可直接使用r、g、b、a变量,类型自动推导为number
}

这个写法和你最开始逐个标注参数类型的函数签名完全等价,调用时没有任何写法变化,也不会丢失类型检查能力。

  • 如果你接受对象形式传参(可以避免位置传参容易记混参数顺序的问题),可以直接在参数位写内联对象类型,不需要额外抽离interface声明:
function setColor({r, g, b, a}: {r: number, g: number, b: number, a: number}) {
  // 内部直接使用解构后的变量即可,调用形式为setColor({r:255, g:0, b:0, a:1})
}
  • 如果后续有其他函数需要复用这套参数类型,不需要重复写类型定义,直接用TS内置的Parameters工具类型从已有函数上提取参数类型即可:
// 新函数参数和setColor完全一致,不需要重复写四次number类型声明
function updateColor(...args: Parameters<typeof setColor>) {
  const [r, g, b, a] = args
  // 业务逻辑
}

要是这套颜色参数结构后面要在很多地方复用,也可以用type别名做一次声明,写法比interface更简洁,也不属于你提到的单独定义接口的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:09:19