在environment.ts文件中声明对象

时间:2019-05-05 11:57:19

标签: angular typescript angular7 ionic4

environment.ts文件中声明对象的任何线索?我已经尝试过如下图所示。但是它没有检测到HotelEnvironment接口吗?

export const environment = {
  production: false,

  /*hotelEnvironment:HotelEnvironment={
     apiUrl: "",
     titanUrl: "",
     hotelName: ""
  }*/

   hotelEnvironment:HotelEnvironment={
     apiUrl: "",
     titanUrl: "",
     hotelName: ""
  }
};

export interface HotelEnvironment {
    apiUrl: string;
    titanUrl: string;
    hotelName: string;
}
  

“ HotelEnvironment”仅引用一种类型,但被用作值   here.ts(2693)

更新:

我需要声明2个或更多酒店环境。即我将有很多酒店。但是1家酒店将在环境文件中出现一次。当我们部署应用程序时,开发人员需要注释掉其他酒店并仅启用1。我的想法是最大程度地减少注释代码时开发人员将犯的错误。也就是说,如果我有3行代码而不是单个对象,则开发人员可能会被注释掉2行,而其他代码将丢失并保持未注释状态。这将导致应用程序发生意外行为。

2 个答案:

答案 0 :(得分:2)

您的export const environment声明了一个简单的json对象。

在对象分配中,您不能使用:声明属性类型,而只能声明一个值。

您可以尝试使用以下代码段,但不确定是否可以使用

export const environment: {production: boolean, hotelEnvironment: HotelEnvironment} = {
  production: false,
  hotelEnvironment:{
     apiUrl: "",
     titanUrl: "",
     hotelName: ""
  }
};


export interface HotelEnvironment {
    apiUrl: string;
    titanUrl: string;
    hotelName: string;
}

答案 1 :(得分:0)

您可以分别定义hotelEnvironment,然后使用shorthand property name将其包含在environment中:

const hotelEnvironment: HotelEnvironment = {
    apiUrl: "",
    titanUrl: "",
    hotelName: ""
}

export const environment = {
    production: false,
    hotelEnvironment
};

export interface HotelEnvironment {
    apiUrl: string;
    titanUrl: string;
    hotelName: string;
}

Playground