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

TypeScript中[ String, Number ][number]与联合类型String | Number的区别

两种TypeScript类型的区别分析

先看给出的类型定义:

type type1 = [String, Number][number]
type type2 = String | Number

结论:这两个类型完全等价,没有区别

具体分析

  • [String, Number] 是一个元组类型,包含两个元素,类型分别为String(字符串包装对象类型)和Number(数字包装对象类型)。
  • [String, Number][number] 属于索引访问类型,通过number索引获取元组的所有可能元素类型,最终得到的就是元组元素的联合类型 String | Number,和type2的定义完全一致。

从示例代码的赋值行为也能验证这一点:两种类型都能接受原始字符串("")和原始数字(1)——这是因为TypeScript允许原始类型值赋值给对应的包装对象类型(比如string可赋值给String,number可赋值给Number),所以示例中所有变量的赋值都能通过类型检查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:07:36