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

如何定义必须以特定顺序特定值开头的TypeScript数组类型?

解决TypeScript特定开头顺序的数组类型定义问题

你需要的是强制数组前两个元素必须按顺序为'hello'和'goodbye',后续可追加任意数量字符串的类型,通过元组+剩余元素语法就能实现:

type SpecificArray = ['hello', 'goodbye', ...string[]];

验证效果

  • const myArray: SpecificArray = [] → 不合法(缺少前两个必填元素)
  • const myArray: SpecificArray = [''] → 不合法(第一个元素不是'hello')
  • const myArray: SpecificArray = ['something'] → 不合法(第一个元素不是'hello')
  • const myArray: SpecificArray = ['hello'] → 不合法(缺少第二个元素'goodbye')
  • const myArray: SpecificArray = ['hello', 'goodbye'] → 合法(符合前两个元素要求)
  • const myArray: SpecificArray = ['hello', 'goodbye', 'something'] → 合法(后续可追加任意字符串)

为什么之前的方案无效

  1. ('hello'|'goodbye'|string)[]:这是普通数组类型,仅限制元素类型,不约束顺序和最小长度,所以空数组、单个元素等情况都能通过校验。
  2. ['hello'|'goodbye'|string]:这是固定长度为1的元组,只能包含一个元素,完全不符合你需要的至少两个特定开头元素的要求。
  3. LiteralUnion<'hello'|'goodbye', string>[]:本质还是数组类型,没有强制前两个元素的顺序和数量,无法满足你的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:41:57