You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS使用ConfigService获取环境变量报类型不匹配错误如何解决

问题原因

@nestjs/config 2.0及以上版本对ConfigService新增了强制类型安全约束,默认情况下如果没有给ConfigService指定环境变量的类型定义,调用get方法时的入参就会被推导为never类型。你旧项目使用的1.1.2版本没有这个特性,所以相同代码在旧项目不会报错,新项目安装的是2.x+版本就会触发类型错误。

解决方案

可根据需求任选一种:

方案1:指定ConfigService的泛型参数(推荐)

既可以解决类型报错,还能获得环境变量的类型提示能力,修改对应代码即可:

// 单次调用指定返回值类型,快速解决报错
const listeningPort = configService.get<string>('LISTENING_PORT');

// 全局定义环境变量类型,获得完整类型提示
interface EnvConfig {
  LISTENING_PORT: number;
  // 其他用到的环境变量都可以在这里补充定义
}
const configService = app.get<ConfigService<EnvConfig>>(ConfigService);
// 后续调用get方法时会自动校验参数合法性、推导返回值类型

方案2:降级@nestjs/config版本

不需要修改业务代码,直接把依赖版本回退到之前使用的1.1.2版本即可:

npm uninstall @nestjs/config
npm install @nestjs/config@1.1.2

方案3:关闭模板类型校验(不推荐)

临时解决可以在tsconfig.json中将strictTemplates配置项设为false,但会丢失所有模板类型校验能力,不建议长期使用。

内容的提问来源于stack exchange,提问作者Ridwan Sidik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:54:07