CORDIS / TYPES & RUNTIME
编译器认识它,进程就有它吗?
分别改变声明可见性与实现可用性,比较静态检查和消费者状态。
当前 Program 缺少字段,运行时也没有实现
类型入口与运行组合都需要补齐。单独改一边,不会自动修复另一边。
| 观察点 | 当前结果 | 判定条件 |
|---|---|---|
| Context.fs 字段 | TS2339 | 当前 Program 的判断 |
| ctx.get('fs') | undefined | 运行时按域探测 |
| inject: ['fs'] | PENDING | 假设其他初始化成功 |
查看推演条件与源码定位
源码定位:packages/fs/fs/src/index.ts:45/87;tool-fs/src/read.ts:10;vendor/cordis/src/service.ts:42;fiber.ts:597。
消费者仅声明 fs 一项依赖;实现就绪包含同域、提供者 ACTIVE、可选 check 通过,且假设消费者其他初始化成功。字段缺失时的运行结果仅讨论已有 JavaScript 进入运行时的条件;图不是 dsh 运行采样。
类型检查通过,消费者仍在等待实现
类型导入让编译器认识 fs,却不会挂载提供方。消费者主体仍处于等待条件中。
| 观察点 | 当前结果 | 判定条件 |
|---|---|---|
| Context.fs 字段 | 通过 | 当前 Program 的判断 |
| ctx.get('fs') | undefined | 运行时按域探测 |
| inject: ['fs'] | PENDING | 假设其他初始化成功 |
查看推演条件与源码定位
源码定位:packages/fs/fs/src/index.ts:45/87;tool-fs/src/read.ts:10;vendor/cordis/src/service.ts:42;fiber.ts:597。
消费者仅声明 fs 一项依赖;实现就绪包含同域、提供者 ACTIVE、可选 check 通过,且假设消费者其他初始化成功。字段缺失时的运行结果仅讨论已有 JavaScript 进入运行时的条件;图不是 dsh 运行采样。
运行时已有能力,当前 Program 仍缺少字段
若已有 JavaScript 进入运行时,消费者可以取得服务;独立 TypeScript 消费方仍需正确的声明入口。
| 观察点 | 当前结果 | 判定条件 |
|---|---|---|
| Context.fs 字段 | TS2339 | 当前 Program 的判断 |
| ctx.get('fs') | 实现值 | 运行时按域探测 |
| inject: ['fs'] | ACTIVE | 假设其他初始化成功 |
查看推演条件与源码定位
源码定位:packages/fs/fs/src/index.ts:45/87;tool-fs/src/read.ts:10;vendor/cordis/src/service.ts:42;fiber.ts:597。
消费者仅声明 fs 一项依赖;实现就绪包含同域、提供者 ACTIVE、可选 check 通过,且假设消费者其他初始化成功。字段缺失时的运行结果仅讨论已有 JavaScript 进入运行时的条件;图不是 dsh 运行采样。
声明可见与实现就绪,分别满足两个条件
类型检查与运行激活分别成立。文件操作的参数、权限和业务条件仍由对应 API 检查。
| 观察点 | 当前结果 | 判定条件 |
|---|---|---|
| Context.fs 字段 | 通过 | 当前 Program 的判断 |
| ctx.get('fs') | 实现值 | 运行时按域探测 |
| inject: ['fs'] | ACTIVE | 假设其他初始化成功 |
查看推演条件与源码定位
源码定位:packages/fs/fs/src/index.ts:45/87;tool-fs/src/read.ts:10;vendor/cordis/src/service.ts:42;fiber.ts:597。
消费者仅声明 fs 一项依赖;实现就绪包含同域、提供者 ACTIVE、可选 check 通过,且假设消费者其他初始化成功。字段缺失时的运行结果仅讨论已有 JavaScript 进入运行时的条件;图不是 dsh 运行采样。
紫色表示类型路径,青色表示运行路径,玫红标记字段缺失或等待;文字同时给出各项结果。虚线表示当前缺少该条件。
固定源码 d7432673 · 关系推演,不是运行采样。本文另有 TypeScript 6.0.3 的独立语言实验;打印时显示四种组合。