假设我有一段代码,我只想在暂存环境中出现(或运行)。我在该环境中设置了一个环境变量(例如,ENV ='staging'),TypeScript是否有办法在编译期间访问该变量?
示例:
if (Enivronment['ENV'] == 'staging') console.log('testing');
会在上述环境中编译为(冗余但有效)if ('staging' == 'staging') ...
吗?
答案 0 :(得分:3)
不,这是不可能的。
如果您的TypeScript文件在Node中运行,则可以使用process.env
,因为它是常规的Node API-但是在这种情况下,环境变量是在运行时通过编译文件访问的,而不是在TypeScript编译时访问的
如果您的TypeScript文件在浏览器中运行,则没有process.env
,因此您甚至无法在运行时访问它。您可以在构建时用use a tool like Webpack替换对编译文件中process.env
变量的引用,使其具有各自的值-但这仍然不是TypeScript的工作。
不幸的是,答案是否定的:TypeScript无法做到这一点,您必须使用其他工具(例如Webpack,甚至只是搜索和替换)将环境变量注入脚本。
答案 1 :(得分:2)
是否有一种方法可让TypeScript在编译期间访问该变量
烨。首选使用在节点中 的process.env
,并且可以使用--define与webpack一起使用。
示例说明如何将其用于构建输出切换:https://basarat.gitbooks.io/typescript/content/docs/tips/build-toggles.html