我有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修改任何文件,则在保存文件时,它会自动重建应用程序,并且可以正常工作。
你知道怎么回事吗?
答案 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) {
希望它可以帮助某人。