Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
Javascript JS如何使用单行设置范围外的值_Javascript_Typescript_Scope - Fatal编程技术网

Javascript JS如何使用单行设置范围外的值

Javascript JS如何使用单行设置范围外的值,javascript,typescript,scope,Javascript,Typescript,Scope,如果函数calculateAvgGainLoss响应包括avgGain、avgLoss我们可以这样得到这些值 const { avgGain, avgLoss } = calculateAvgGainLoss(prices); 我想将这些值设置为在函数外部定义的变量。我该怎么做?下面的例子 describe("test", () => { let avgGain: number, avgLoss: number; it("Calculate average gain &

如果函数
calculateAvgGainLoss
响应包括
avgGain、avgLoss
我们可以这样得到这些值

const { avgGain, avgLoss } = calculateAvgGainLoss(prices);
我想将这些值设置为在函数外部定义的变量。我该怎么做?下面的例子

describe("test", () => {
  let avgGain: number, avgLoss: number;
  it("Calculate average gain & loss", () => {
    const prices = [...];
    /*...This isn't working, has to be changed...*/ { avgGain, avgLoss } = calculateAvgGainLoss(prices);
    expect(avgGain).toBe(0.24);
    expect(avgLoss).toBe(0.1);
  });

});

{
开头的行会混淆解析器(它是作用域的开头吗?对象?等等)。只需用括号将行括起来即可绕过此问题:

describe("test", () => {
  let avgGain: number, avgLoss: number;
  it("Calculate average gain & loss", () => {
    const prices = [...];
    ({ avgGain, avgLoss } = calculateAvgGainLoss(prices)); // <--
    expect(avgGain).toBe(0.24);
    expect(avgLoss).toBe(0.1);
  });

});
描述(“测试”,()=>{
设avgGain:number,avgLoss:number;
它(“计算平均损益”,()=>{
常数价格=[…];

({avgGain,avgLoss}=calculateAvgGainLoss(prices));//以
{
开头的行会混淆解析器(它是范围的开始吗?对象?等等)。只需用括号括住行即可:

describe("test", () => {
  let avgGain: number, avgLoss: number;
  it("Calculate average gain & loss", () => {
    const prices = [...];
    ({ avgGain, avgLoss } = calculateAvgGainLoss(prices)); // <--
    expect(avgGain).toBe(0.24);
    expect(avgLoss).toBe(0.1);
  });

});
描述(“测试”,()=>{
设avgGain:number,avgLoss:number;
它(“计算平均损益”,()=>{
常数价格=[…];

({avgGain,avgLoss}=calculateAvgGainLoss(价格));//事实上,我在询问之前已经尝试过这种方法,但这次我得到了“变量”…“在被分配”错误之前被使用。我不明白-请提供一个链接它按预期工作。我的错误抱歉。谢谢你的帮助事实上我在询问之前已经尝试过这种方法,但这次我得到了“变量”…“是吗sed在被分配之前的错误。我不明白-请提供一个链接。它按预期工作。我的错误很抱歉。谢谢您的帮助