角环境未加载

时间:2019-03-27 14:19:12

标签: typescript angular-cli

我有3个具有此属性的环境

environment.ts
HASVIDEOCALL: {
    VIDEOCALLURL: 'https://trial.herokuapp.com'
  },
environment.prod.ts
HASVIDEOCALL: {
    VIDEOCALLURL: 'https://trial.herokuapp.com'
  },
environment.costumer.ts
HASVIDEOCALL: false

在我拥有的angular.json中

    "costumer": {
      "fileReplacements": [
        {
          "replace": "src/environments/environment.ts",
          "with": "src/environments/environment.hasis.ts"
        },

并在以下某些服务(例如opentok.service.ts)中使用此变量:

  getSessionConfig(room) {
    if (environment.HASVIDEOCALL) {
      let url = environment.HASVIDEOCALL.VIDEOCALLURL + '/room/' + room;
      return this.http.get(url);
    }
  }

现在我尝试从以下环境开始:

ng serve --configuration=costumer

但是终端说:

  

src / app / services / opentok.service.ts(21,42):错误TS2339:属性   类型“ true”不存在“ VIDEOCALLURL”。

     

我「wdm」:编译失败。

但是正如您所看到的,其类型不正确。

还有一个更极端的选择,那就是如果我仅使用console.log修改任何文件,则在保存文件时,它会自动重建应用程序,并且可以正常工作。

你知道怎么回事吗?

2 个答案:

答案 0 :(得分:1)

environment.costumer.ts:HASVIDEOCALL: false

在这里的“真实”情况下,我相信类型检查是在检查是否可以从VIDEOCALLURL值(而不是您的硬编码true)访问false。 / p>

答案 1 :(得分:0)

在@OneLunch Man的启发下,我解决了

我替换为:

if (environment.HASVIDEOCALL) {

与此:

let hasVideoCall: any = environment.HASVIDEOCALL;
if (hasVideoCall) {

希望它可以帮助某人。