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

TypeScript如何定义返回包含字符串与数字的数组的函数

TypeScript混合类型数组的返回值类型定义

你当前写的string[]|number[]类型是错误的——它表示函数返回的要么是全字符串数组,要么是全数字数组,但你的函数返回的是同时包含数字和字符串的混合数组,所以TypeScript会抛出类型错误。

下面是几种正确的定义方式:

1. 联合类型数组(最通用)

用(string | number)[]表示数组中的每个元素可以是字符串或数字,这是匹配你需求的标准写法:

const test = (): (string | number)[] => {
  return [1, 2, 3, 'test']
}

也可以写成等价的Array<string | number>:

const test = (): Array<string | number> => {
  return [1, 2, 3, 'test']
}

2. 元组类型(适用于元素结构固定的场景)

如果你的数组元素数量和每个位置的类型是固定的(比如例子里是3个数字+1个字符串),可以用元组类型精确定义:

const test = (): [number, number, number, string] => {
  return [1, 2, 3, 'test']
}

这种写法的好处是能严格约束数组的长度和每个位置的类型,但如果后续数组元素数量或类型位置有变化,需要同步修改类型定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:22:00