我试图从Windows读取一些环境变量。在我的env.js
中,我设置了一个如下变量:
(function(window) {
window["env"] = window["env"] || {};
window["env"]["apiURL"] = "https://localhost:44388";
})(this);
然后我想在这样的环境文件中读取它(env.dev.ts
):
const apiUrl= window['env']['apiURL'];
export const environment = {
url: {
apiBaseUrl: `${apiUrl}`,
},
};
这会导致environment.dev.ts
文件中的['env']下出现一条红线,说明Element implicitly has an 'any' type because index expression is not of type 'number'
。一个解决方法是在tsconfig.json
中设置strict: false
,但我希望保留strict: true
。也可以隐藏这类警告,但这似乎很不靠谱。有没有其他方法可以读取apiURL
变量?
1条答案
按热度按时间ahy6op9u1#
这看起来像是declaration merging的一个任务,它允许你在已有的声明中“添加”一些东西,因为你期望
window
有一个{apiURL: string}
类型的env
属性,并且window
是全局的Window
接口类型,你可以通过global
扩展来合并这个属性:在此之后,事情应该按预期工作:
Playground代码链接