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_Typescript_Return - Fatal编程技术网

Arrays Typescript:声明返回嵌套数组的函数

Arrays Typescript:声明返回嵌套数组的函数,arrays,typescript,return,Arrays,Typescript,Return,我在typescript中声明了一个返回嵌套数组的函数,但我不确定如何声明返回类型和返回的数组。有人能帮忙吗?这是我的 myFunction(items: any): [] { const data = []; for (const item of items) { data.push([item.parameter1, item.parameter2]) } return data; // IDE throws error here } 您可以使用myFunction

我在typescript中声明了一个返回嵌套数组的函数,但我不确定如何声明返回类型和返回的数组。有人能帮忙吗?这是我的

myFunction(items: any): [] {
  const data = [];
  for (const item of items) {
    data.push([item.parameter1, item.parameter2])
  }
  return data; // IDE throws error here
}

您可以使用
myFunction():any[][]

例如:

myFunction(): any[][] {
    let data = [,];
    data = [[1], [2], [3]];
    console.log(data);
    return data; 
}

如果需要某种类型的安全性,这里有一个解决方案:

接口项{
参数1:P1;
参数2:P2;
}
函数myFunction(项:项[]){
常量数据:[Item['parameter1'],Item['parameter2']][]=[];
用于(项目的常数项){
data.push([item.parameter1,item.parameter2])
}
返回数据;//返回[P1,P2][]
}

当我们使用静态类型系统时,更正确的方法是指定比任何
更多的内容。考虑这种类型安全的版本:

type Item = {
    parameter1: any; // here better some type 
    parameter2: any; // here better some type 
}

type ParametersTupleArr = [Item['parameter1'], Item['parameter2']][]; // return type
function myFunction(items: Item[]): ParametersTupleArr {
  const data = [] as ParametersTupleArr;
  for (const item of items) {
    data.push([item.parameter1, item.parameter2])
  }
  return data;
}

Type
[Item['parameter1'],Item['parameter2']][
表示我们将输出参数类型为
Item
的2元素元组数组

@MichaelRennison我很高兴这对你有帮助!:)