服务与依赖:Service 基类
审计依据 ·
Service 基类与声明合并来自教程;内置服务清单以仓库生成文档为准。 查看本节审计记录
用 Service 基类提供命名服务,让消费方通过 inject 获得完整类型提示。
完成 3.7。
- 服务是挂在 ctx 上的命名能力;
super(ctx, 'metrics')把它注册为ctx.metrics。 - 消费方声明
inject: ['metrics'],apply 执行时服务已就绪。 - 用
declare module '@deepseek-ai/cordis'合并 Context 类型,获得自动补全与编译期检查。 - 必需依赖用 inject;可选依赖用
ctx.get(),可能返回 undefined。 - 服务消失时依赖者自动 dispose,服务回来时自动重载。
写一个 MetricsService,提供 record(event, value);再写一个消费插件注入它。分别测「服务存在 / 不存在」两种加载结果。
服务名由什么决定?
super(ctx, 'metrics') 的第二个参数决定;它同时决定 ctx 上的键与 inject 的名字。类型提示是怎么来的?
metrics: MetricsService,编译期就能检查拼写与类型。