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

Java可变参数在Angular中的等效实现:参数数量不定且永不为空

Angular/TypeScript 可变参数(对应Java可变参数)实现方案

你之前的写法问题在于,使用可选数组参数obj?: MyObj[]的语法含义是「要么不传参数,要么传一个符合MyObj[]类型的数组参数」,不是接收不定数量的单个参数,和你需要的可变参数逻辑不符。

你可以直接使用TypeScript的剩余参数语法实现需求,效果和Java的可变参数完全一致,参数永远为数组类型、不会为空,同时支持不定数量的参数传入:

// 函数定义
myFunction(...objs: MyObj[]) {
  // objs 类型固定为 MyObj[],永远不会是 null 或 undefined
  // 未传参时 objs 默认为空数组 []
}

调用方式完全兼容你需要的两种场景:

  • 无参数调用:myFunction() 正常运行
  • 任意数量参数调用:myFunction(obj1, obj2, obj3) 正常运行

如果需要传入已有的数组作为参数,搭配展开运算符即可:

const myObjArray: MyObj[] = [obj1, obj2];
myFunction(...myObjArray);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:15:03