Tyl*_*ian 13 javascript typescript
假设我有一段代码,我只想在暂存环境中出现(或运行).我在该环境中设置了一个环境变量(例如,ENV ='staging'),TypeScript是否有一种方法可以在编译期间访问该变量?
例:
if (Enivronment['ENV'] == 'staging') console.log('testing');
哪个会if ('staging' == 'staging') ...在上述环境中编译成(冗余但有效)?
Vin*_*ent 11
不,这是不可能的。
如果您的 TypeScript 文件在 Node 中运行,您可以使用process.env它,因为它是一个常规的 Node API - 但在这种情况下,环境变量在运行时由您的编译文件访问,而不是在编译时由 TypeScript 访问。
如果您的 TypeScript 文件在浏览器中运行,则没有process.env,因此您甚至无法在运行时访问它。您可以使用 Webpack 之类的工具process.env在构建时用它们各自的值替换对编译文件中变量的引用- 但这仍然不是 TypeScript 所做的。
所以不幸的是,答案是否定的:TypeScript 不能这样做,你必须使用其他东西(比如 Webpack,甚至只是搜索和替换)将环境变量注入到你的脚本中。
TypeScript 有没有办法在编译期间访问该变量
是的。更喜欢使用process.env它在 Node 中的工作方式,并且可以使用 --define 与 webpack 一起使用。
显示如何使用它来构建输出切换的示例: https://basarat.gitbook.io/typescript/main-1/build-toggles