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

如何为嵌套数组编写类型,简化number[][][]这类冗长写法?

简化三维数字数组的类型定义

你可以通过自定义**类型别名(Type Alias)**来简化多层数组的类型声明,让代码更易读且复用性更强,分两种场景处理:

通用场景(不约束数组长度)

如果二维子数组的长度不固定,可以逐层抽象类型:

// 定义单行的数字数组类型
type NumberRow = number[];
// 定义由多行组成的二维网格
type NumberGrid = NumberRow[];
// 最终的外层集合类型
type PatternCollection = NumberGrid[];

// 使用时直接引用自定义类型
const allPatterns: PatternCollection = [
  [[0,0,0],[1,1,1],[0,0,0]],
  [[0,1,0],[0,1,0],[0,1,0]]
];

固定尺寸场景(比如严格3x3网格)

如果每个子网格都是固定的3行3列,可以用元组类型做更精确的约束,同时保持写法简洁:

// 固定3个元素的行
type Row3 = [number, number, number];
// 固定3行的3x3网格
type Grid3x3 = [Row3, Row3, Row3];
// 由多个3x3网格组成的集合
type FixedPatternCollection = Grid3x3[];

// 使用示例,不符合3x3结构会触发TS类型报错
const allPatterns: FixedPatternCollection = [
  [[0,0,0],[1,1,1],[0,0,0]],
  [[0,1,0],[0,1,0],[0,1,0]]
];

这种方式不仅替代了繁琐的number[][][]写法,还能通过类型名称直观表达数据结构的含义,后续如果需要修改结构(比如把数字换成布尔值),只需要修改最底层的类型定义即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:05:23