无法解析 TS2532:对象可能是 'undefined'
Cannot resolve TS2532: Object is possibly 'undefined'
我有这个代码。 WebStorm 显示,存在错误 TS2532: Object is possibly 'undefined'
。我已经安装了 dotenv
和 @types/dotenv
但仍然有这个错误。我该如何解决?
代码如下:
import jwt from "jsonwebtoken";
import fs from 'fs';
import path from 'path';
import { JwtPayload } from "../interfaces/jwt";
const privateKey = fs.readFileSync(path.resolve(__dirname + "../../../keys/private.pem"));
const publicKey = fs.readFileSync(path.resolve(__dirname + "../../../keys/public.pem"));
export = {
sign: (payload: JwtPayload) => {
try {
return jwt.sign(
payload,
{
key: privateKey,
passphrase: process.env.JWT_PASSPHRASE.toString()
},
{
algorithm: "RS256",
expiresIn: "30m"
}
)
} catch (e) {
//
}
},
还想说,我在dotenv
和@types/dotenv
-^8.2.0
上有相同的版本。我试图像这样添加这个模块,但它不起作用:
import * as dotenv from 'dotenv';
dotenv.config()
我通过在 tsconfig.json
中将 strictNullChecks
设置为 false 解决了这个问题:
"strictNullChecks": false,
我有这个代码。 WebStorm 显示,存在错误 TS2532: Object is possibly 'undefined'
。我已经安装了 dotenv
和 @types/dotenv
但仍然有这个错误。我该如何解决?
代码如下:
import jwt from "jsonwebtoken";
import fs from 'fs';
import path from 'path';
import { JwtPayload } from "../interfaces/jwt";
const privateKey = fs.readFileSync(path.resolve(__dirname + "../../../keys/private.pem"));
const publicKey = fs.readFileSync(path.resolve(__dirname + "../../../keys/public.pem"));
export = {
sign: (payload: JwtPayload) => {
try {
return jwt.sign(
payload,
{
key: privateKey,
passphrase: process.env.JWT_PASSPHRASE.toString()
},
{
algorithm: "RS256",
expiresIn: "30m"
}
)
} catch (e) {
//
}
},
还想说,我在dotenv
和@types/dotenv
-^8.2.0
上有相同的版本。我试图像这样添加这个模块,但它不起作用:
import * as dotenv from 'dotenv';
dotenv.config()
我通过在 tsconfig.json
中将 strictNullChecks
设置为 false 解决了这个问题:
"strictNullChecks": false,