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

TypeScript中如何将number | number[]类型转换为number[]类型

TypeScript 联合类型转数组解决方案

你可以通过 Array.isArray() 方法实现类型判断和自动类型收窄,无需额外类型断言即可满足转换需求:

最简写法

let v1: number | number[];
const v2: number[] = Array.isArray(v1) ? v1 : [v1];

可复用工具函数写法

如果需要多次使用该逻辑,可以封装为通用工具函数:

function coerceToArray(input: number | number[]): number[] {
  if (Array.isArray(input)) {
    return input;
  }
  return [input];
}

// 测试用例
const test1 = coerceToArray(5); // 类型为 number[],值为 [5]
const test2 = coerceToArray([1, 3, 5]); // 类型为 number[],值为 [1,3,5]

说明

  • TypeScript 原生对 Array.isArray() 做了类型收窄支持,代码全程类型安全,无编译报错。
  • 数组场景直接返回原数组引用,单值场景返回新数组,无冗余性能损耗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:36:03