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

如何用TypeScript类型定义声明函数参数?避免重复声明

在TypeScript中复用函数参数类型的几种方法

当然可以,TypeScript提供了多种方案帮你避免重复编写函数参数声明,下面是贴合你需求的具体实现:

1. 解构参数+对象类型(最接近props写法)

这就是你想要的类似props: IName的方式,把参数包装成对象后用已定义的类型约束:

type IName = {
  firstName: string;
  lastName: string;
}

// 直接解构参数并绑定类型,修改IName时函数参数自动同步
const fullName = ({ firstName, lastName }: IName): string => {
  return firstName + lastName;
}

2. 复用已有的函数类型

如果你已经定义了FullNameFn这种函数类型,不用重复写参数,直接把函数指定为该类型即可:

type FullNameFn = (firstName: string, lastName: string) => string;

// 直接绑定函数类型,参数和返回值自动被约束
const fullName: FullNameFn = (firstName, lastName) => {
  return firstName + lastName;
}

要是需要显式提取参数(比如做类型推导),可以用Parameters工具类型获取参数元组:

type FullNameFn = (firstName: string, lastName: string) => string;

const fullName: FullNameFn = (...[firstName, lastName]: Parameters<FullNameFn>) => {
  return firstName + lastName;
}

3. 参数元组类型

如果不想用对象传递参数,也可以定义参数元组类型来复用:

type NameParams = [firstName: string, lastName: string];

const fullName = (...[firstName, lastName]: NameParams): string => {
  return firstName + lastName;
}

总结

优先推荐第一种解构对象的方式,最符合你想要的props式写法,后续修改类型时只需维护一处;如果要保留原有的独立参数传递方式,直接绑定函数类型的方案最简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:50:53