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

如何定义首元素为字符串其余为数字的TypeScript自定义数组类型?

你遇到的类型错误是因为原来的segment类型定义没有约束数组不同位置的元素类型,把原本首元素必须为字符串、其余元素必须为数字的结构,定义成了所有位置都可以是字符串或数字的混合数组。

正确的segment类型定义

使用JSDoc支持的带剩余元素的元组类型即可满足需求:

/**
 * @typedef {[string, ...number[]]} segment
 */

类型说明

  • 方括号内第一个位置写string,约束数组首个元素必须为字符串类型,匹配路径命令的类型要求
  • 后续的...number[]是剩余元素语法,约束数组从第二个元素开始的所有元素都必须为数字类型,匹配路径参数的类型要求

修改后两个报错都会自动消失:

  1. 解构得到的pathCommand会被正确推断为string类型,调用字符串方法不会再报错
  2. seg.slice(1)返回的结果会被正确推断为number[]类型,传入checkPathValues时类型完全匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:24:04