【发布时间】:2021-12-25 10:42:41
【问题描述】:
在一个项目中,我有一个环境变量,应该用于指定我们是否要使用 HTTPS:
SSL_ENABLED=1
基于这个环境变量,我现在尝试使用 https 或 http 模块:
import * as http from parseInt(process.env.SSL_ENABLED || '', 10) ? 'https' : 'http'
const server = http.createServer(...)
上面的导入抛出以下打字错误:
TS1141: String literal expected.
当然我可以解决这个问题,分别导入 https 和 http,但我想知道是否有办法通过一次导入来解决上述问题?
没有打字稿,以下工作就可以了:
const http = require('http' + parseInt(process.env.SSL_ENABLED || '', 10) ? 's' : ''))
【问题讨论】:
-
不,这会导致承诺,在这种情况下,我需要使用
await对吗? -
也许您可以同时导入两者,然后对某个变量进行条件赋值并使用它?
标签: javascript node.js typescript javascript-import