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

如何在Angular/TypeScript中正确导入抽象类与泛型?

解决方案

  • 不要将抽象泛型基类加入任何Angular模块的declarations/exports/providers数组
    Angular的模块声明数组仅接受可实例化的组件、指令、管道、普通服务类,抽象类仅作为继承基类使用,直接在业务代码中导入继承即可,不需要在模块中注册。
  • 移除抽象基类上的Angular专属装饰器
    泛型抽象服务GenericService不需要加@Injectable装饰器,你需要为每个具体业务场景编写它的子类,仅给子类加@Injectable配置注入规则即可。同理抽象组件基类GenericComponent不需要加@Component或@Injectable装饰器,直接写纯TS抽象类就行,子类组件继承后自己加@Component装饰器。
  • 修复不相关的依赖版本问题
    你看到的@angular/compiler-cli相关报错和导入泛型类没有直接关系,是Angular依赖版本不匹配、TS类型配置缺失导致的:
    1. 确认package.json中所有@angular/开头的依赖版本号完全一致,不一致的话统一重装即可解决编译导出项不存在的报错
    2. 缺失path模块类型的问题,执行npm i --save-dev @types/node,或者在tsconfig.json的compilerOptions中添加"types": ["node"]即可解决

内容的提问来源于stack exchange,提问作者Ivan Yurchenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:36:03