此问题已在此处有答案:
using process.env in TypeScript(20个回答)
12天前关闭
我在我的nextjs-13应用中实现了next-auth
,但是当我试图在[...nextauth]/route.ts
中使用.env
变量时,它显示错误:
类型'字符串|undefined'不能赋值给类型' string '。
项目详情
| Package 名称|软件包版本|
| - -----|- -----|
| Next.js(带有app route和src/ directory)|13.4.4|
| 类型脚本|5.1.3|
| 下一认证|4.22.1|
.env
文件
GOOGLE_CLIENT_ID=my-Client-Id
GOOGLE_CLIENT_SECRET=my-Client-Secret
1条答案
按热度按时间kzmpq1sx1#
选项一:铸件
简单的解决方案是将环境变量转换为如下所示的字符串。如果你知道你的环境变量已经定义好了,这将很好地工作。但是,如果您在未来忘记设置它们,您将得到错误。
选项二:类型缩小
您可以确保在访问env变量之前定义它们。但这可能会变得非常重复。Typescript现在知道这个代码块没有未定义。你有同样的问题,在选项1虽然差不多。
选项三:类型化的env变量
我认为这是最好的选择。我强烈推荐t3-env软件包。然后你就可以访问类型安全的环境变量。