Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在TypeScript中声明数组的其他方法_Arrays_Types_Typescript_Tuples - Fatal编程技术网

Arrays 在TypeScript中声明数组的其他方法

Arrays 在TypeScript中声明数组的其他方法,arrays,types,typescript,tuples,Arrays,Types,Typescript,Tuples,我的Typescript文件将使用这些声明之一编译。它们相等吗?这些声明数组的方法有名称吗 interface Foo { bounds: number[][]; bounds2: [[number, number], [number, number]]; } 我将bounds传递到的库采用两个双元素数组的数组边界2在上面似乎更清楚地表达了这一点,但我不确定它是否真的在做同样的事情。这不是同一件事 bounds表示numbers的数组 bounds2表示一种称为元组类型的东西,

我的Typescript文件将使用这些声明之一编译。它们相等吗?这些声明数组的方法有名称吗

interface Foo {
    bounds: number[][];
    bounds2: [[number, number], [number, number]];
}

我将
bounds
传递到的库采用两个双元素数组的数组<代码>边界2在上面似乎更清楚地表达了这一点,但我不确定它是否真的在做同样的事情。

这不是同一件事

bounds
表示
number
s的数组


bounds2
表示一种称为元组类型的东西,它类似于更详细的数组描述(类型位于指定的索引上)。在本例中,这是一个包含两个元组的元组,这两个元组都包含两个
number
s

我认为下面的代码很好地说明了这一点:

let a: number[][];
let b: [[number, number], [number, number]];

a = [5]; // error
a = [[5]]; // ok
a = [[5],[8,9,10]]; // ok
a = [[5],[8,9,10], [5]]; // ok
a = [[5, 'a']]; // error

b = [5]; // error
b = [[5]] // error
b = [[5,5]] // error
b = [[5,5], [5,5]] // ok
b = [[5,5],  [5]] // error
b = [[5,5],  [5,5,5]] // ok, a bit surprisingly
b = [[5,5,5],  [5,5,5]] // ok, a bit surprisingly
b = [[5,5,5],  [5,5,5], [5,5,5]] // ok, a bit surprisingly
b = [[5,5,5],  [5,5,5], [5,5,5, 'a']] // error
b = [[5,5,5],  [5,5,5], [5,5,5], [5,5,5,5,5,5]] // ok, a bit surprisingly 
b = [[5,5,5]] // error

我会使用
bounds2:Array
。我对第二个问题也很感兴趣:)数组与元组:谢谢!看起来
bounds2
更适合这种用法。是的,元组的一般用法是当你有一个长度事先知道的相同或混合类型的短组时。当你提到元组时,它不是严格数学意义上的元组。有趣。因此,声明似乎说,“这是一个由多个数字组成的数组,每个数字的长度至少为2。”是的,TypeScript在其他一些情况下似乎遵循这种不太严格的方法。例如,数字索引器第一眼就表现得很奇怪。啊哈-请看最后一句话:漂亮的捕获。可惜你没有特别要求TS1.6。我当时是对的,因为这不太可能是后端口的