Angular独立组件构造函数注入ProductsService失败问题咨询
问题解决思路
- 核心原因:TypeScript的类型检查机制要求你在组件文件中导入
ProductsService的类型定义,哪怕你没有在代码里直接调用它的方法。Angular的依赖注入能找到服务实例,但TS无法识别未导入的类型名称,所以报Cannot find name ProductsService。 - 额外提示:你在
bootstrapApplication的providers里重复声明ProductsService是多余的——因为@Injectable({ providedIn: 'root' })已经自动将服务注册为根级单例,重复声明可能导致不必要的实例创建(不过这不影响当前报错)。
必须的操作(不违反你的需求)
你不需要在组件里显式调用服务,也不用inject()函数,但必须在组件文件顶部添加导入语句:
import { ProductsService } from './path/to/products.service';
这只是给TypeScript提供类型信息,不会改变Angular的DI行为,也不需要你在组件里额外写其他代码。
内容的提问来源于stack exchange,提问作者Jorgen
相关产品推荐
相关产品推荐

