此测试正在打印fine!!!!
。为什么不打印出UNDEFINED!!!!
?
describe('process test', () => {
require('dotenv').config()
it('will make a call from the athena library to get data', async () => {
process.env["FOO"] = undefined
const foo: string | undefined = process.env["FOO"]
if (foo === undefined) {
console.log('UNDEFINED!!!!')
} else {
console.log('fine!!!!')
}
})
})
答案 0 :(得分:7)
在process.env上分配属性会将该值隐式转换为字符串。
process.env.test = null;
console.log(process.env.test);
// => 'null'
process.env.test = undefined;
console.log(process.env.test);
// => 'undefined'
这是可以预料的,因为实际上环境只能存储字符串。
文档再次指出,分配undefined
不会删除环境变量
使用delete从process.env中删除属性。
process.env.TEST = 1;
delete process.env.TEST;
console.log(process.env.TEST);
// => undefined