我正在制作功能风格的国际象棋游戏引擎,就像打字稿的有趣介绍一样。我有这种类型:
type GridCoordinates = [number, number];
...并且我已经定义了64个数字对作为数组,以便能够在各处使用代数符号来指代电路板的位置,因此我冻结了它,因此不必担心会意外地对它们进行突变:
export const A1 = Object.freeze([0,0]);
不幸的是,冻结对象会导致打字稿将其视为不满足GridCoordinates类型-它会看到ReadonlyArray<number>
并引发错误。
我可以将GridCoordinates类型指定为ReadonlyArray<number>
,它接受冻结的数组,但是随后我失去了指定数组长度的能力(必须为2)。
有什么方法可以指定数组长度作为接受冻结数组的类型定义的一部分?