代码之家  ›  专栏  ›  技术社区  ›  jbuddy_13

TypeScript:找不到变量的名称(在条件语句中设置)

  •  2
  • jbuddy_13  · 技术社区  · 2 年前

    我试图根据if/else循环中的条件来分配变量的值。但是,TS似乎找不到变量的名称 因为 它设置在if/else语句中。

    if (stageName === "prod") {
      let iStack = new ProdStack(app, `${BASE_NAME}-Infra-${stageName}`, iProps);
    } else {
      let iStack = new InfraStack(app, `${BASE_NAME}-Infra-${stageName}`, iProps);
    }
    iDeploymentGroup.addStacks(iStack);
    

    找不到名称“iStack”。

    TS中不允许这样做吗?有变通办法吗?

    1 回复  |  直到 2 年前
        1
  •  3
  •   Phil    2 年前

    这个 let 变量是块范围的,因此在 if else 方块不会暴露在外面。

    您可以使用一些解决方法,例如在 if..else 但就我个人而言,我会选择三元

    iDeploymentGroup.addStacks(
      stageName === "prod"
        ? new ProdStack(app, `${BASE_NAME}-Infra-${stageName}`, iProps)
        : new InfraStack(app, `${BASE_NAME}-Infra-${stageName}`, iProps),
    );