在以下代码行中:
internalWhiteList = process.env.INTERNAL_IP_WHITELIST.split( ',' )
我收到错误消息Object is possibly undefined
。使用位于根目录的env
文件中名为dotenv的模块将process.env
个变量加载到.env
。
我怎么能告诉打字稿,process
未定义?
这是我的tsconfig.json
:
{
"compilerOptions": {
"target": "esnext",
"outDir": "../dist",
"allowJs": true,
"module": "commonjs",
"noEmitOnError": false,
"noImplicitAny": false,
"strictNullChecks": true,
"sourceMap": true,
"pretty": false,
"removeComments": true,
"listFiles": false,
"listEmittedFiles": false
},
"exclude": [
"node_modules",
"test/",
"**/*.spec.ts"
]
}
答案 0 :(得分:6)
也许使用non-null assertion operator(!
):
internalWhiteList = process.env.INTERNAL_IP_WHITELIST!.split( ',' )
或使用if
声明:
if (process.env.INTERNAL_IP_WHITELIST)
internalWhiteList = process.env.INTERNAL_IP_WHITELIST.split( ',' )
这是什么意思???
如果您查看Node的type-defs,您会看到:
export interface ProcessEnv {
[key: string]: string | undefined;
}
string | undefined
这意味着INTERNAL_IP_WHITELIST
可能未定义,在这种情况下undefined.split()
是一个错误,因此您需要断言或防止它未定义(如此答案所示)