Typescript 无法访问订户呼叫中的局部变量

Typescript 无法访问订户呼叫中的局部变量,typescript,Typescript,有人能给我解释一下为什么我不能在用户呼叫中访问zvol_名称吗 this.rest.get(this.volume_resource_name , {}).subscribe((res) => { let zvol_name: Array<String>; let zvol_object: Array<object>; for(let zvol_list of res.data) { zvol_name.push(zvol_list['vol_n

有人能给我解释一下为什么我不能在用户呼叫中访问zvol_名称吗

this.rest.get(this.volume_resource_name , {}).subscribe((res) => {
  let zvol_name: Array<String>;
  let zvol_object: Array<object>;
  for(let zvol_list of res.data) {
    zvol_name.push(zvol_list['vol_name']);
  }
  for(let j in zvol_name){
    var result = this.rest.get(this.volume_resource_name+ '/' + zvol_name['vol_name'], {})
    }
});
this.rest.get(this.volume\u resource\u name,{}).subscribe((res)=>{
让zvol_命名为:数组;
让zvol_对象:数组;
用于(让zvol_列出资源数据){
zvol_name.push(zvol_列表['vol_name']);
}
for(让j输入zvol_名称){
var result=this.rest.get(this.volume_resource_name+'/'+zvol_name['vol_name'],{})
}
});

那是因为行
让zvol\u命名为:数组实际上并不初始化数组。您的
zvol\u name
变量仍将是
未定义的

在使用前使用空数组对其进行初始化:

let zvol_name: Array<String> = [];
让zvol_name:Array=[];

您可以在
tsconfig.json
文件中设置
“strictNullChecks”:true,以确保在编译过程中捕获这些错误。

这是因为行
让zvol\u name:Array实际上并不初始化数组。您的
zvol\u name
变量仍将是
未定义的

在使用前使用空数组对其进行初始化:

let zvol_name: Array<String> = [];
让zvol_name:Array=[];
您可以在
tsconfig.json
文件中设置
“strictNullChecks”:true,以确保在编译过程中捕获这些错误。

让zvol_name:Array=new Array()查看此处的差异:或
让zvol_name:Array=new Array()请参见此处的差异: