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

TypeScript可选对象参数冗余问题:如何简化重复代码?

简化TypeScript可选对象参数默认值的写法

你可以用以下几种方式消除重复代码:

1. 给参数默认空对象,解构时设属性默认值

直接把参数的默认值设为空对象,解构时单独给stop指定默认值,效果和原代码完全一致,还避免了重复写{ stop: false }:

const myfunc = ({ stop = false }: { stop?: boolean } = {}) => {
    // do stuff with "stop"
}

原理是:当调用myfunc()不传参数时,参数会被赋值为{},解构stop时找不到对应属性,就会使用默认值false,和你原来写{ stop: false }作为默认参数的结果一样。

2. 定义类型别名复用类型

如果后续可能扩展参数属性,或者想让类型更清晰,可以先定义一个类型别名,再使用:

type MyFuncOptions = { stop?: boolean };
const myfunc = ({ stop = false }: MyFuncOptions = {}) => {
    // do stuff with "stop"
}

这种方式在参数较多时更易维护,修改类型只需改一次别名即可。

额外提示

如果你的参数里有多个可选属性,每个都可以在解构时单独设置默认值,比如:

type MyFuncOptions = { stop?: boolean; delay?: number };
const myfunc = ({ stop = false, delay = 1000 }: MyFuncOptions = {}) => {
    // do stuff with stop and delay
}

这样不管传部分参数还是不传,都能保证每个属性有合理的默认值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:35:40