首页 > 解决方案 > 固定长度的元组

问题描述

元组中的打字稿允许添加以前使用过的任何类型的额外元素,但我想限制长度。我试过了& { length: 2 }但没有帮助

declare var a: [string, number] & { length: 2 };

a[0] = "1"
a[1] = 2;
a[2] = "3";
a[3] = 4;

分配[2][3]不产生错误。如何指定相应的类型?

标签: arraystypescripttuples

解决方案


使用never数组 tail 的类型:

declare var a: [string, number, ...never[]];

你会得到

类型“3”不能分配给类型“从不”。

类型“4”不可分配给类型“从不”。


推荐阅读