Angular中export const无法存储正确对象的问题求助
Angular环境常量引用异常:获取到Module实例而非配置对象
问题现象
把配置常量存在Angular的environment文件并导出,其他模块引用时,拿到的不是预期的配置对象,而是一个Module实例。
环境文件代码(根据截图还原)
export const environment = { production: false, apiConfig: { baseUrl: '你的接口地址', // 其他配置项 } };
引用代码(根据截图还原)
import * as environment from '../../environments/environment'; // 打印结果为Module实例 console.log(environment);
控制台输出(根据截图还原)
输出的是包含default属性的Module对象,实际配置数据在environment.default字段中。
解决方法
修正导入方式
如果environment.ts用的是命名导出(export const environment),必须用命名导入:import { environment } from '../../environments/environment';要是用
import * as environment,会把整个模块对象导入,而非单独的配置常量。检查导出类型
确认environment.ts里没有用默认导出(export default environment),如果是默认导出,导入时可以写成:import environment from '../../environments/environment';验证文件路径
确保导入的environment文件路径正确,没导入到其他同名文件(比如误导入测试环境配置或自定义同名文件)。清理项目缓存
执行ng clean清理Angular缓存,再重新构建项目,避免缓存导致的异常。
内容的提问来源于stack exchange,提问作者Raj Pawan Gumdal
相关产品推荐
相关产品推荐

