fix(workflow): resolve type errors across all packages #16
Reference in New Issue
Block a user
Delete Branch "fix/type-errors-and-tsbuildinfo"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Fix TypeScript type errors across all 10 packages and clean up
tsconfig.tsbuildinfofrom version control.Why
All packages had type errors due to missing
bun-typesconfiguration and some source files had untyped parameters / incorrect AST type narrowing.Changes
tsconfig.json(root) — addtypes: ["bun-types"]packages/workflow/tsconfig.json— addtypes: ["bun-types"]packages/cli-workflow/tsconfig.json— addtypes: ["bun-types"]packages/workflow-role-committer/tsconfig.json— changetypes: ["node"]→types: ["bun-types"]packages/workflow-role-committer/package.json— add bun-types devDeppackage.json(root) — addbun-types+@types/nodedevDepspackages/workflow/src/bundle-validator.ts— fix AST Node type narrowing viaas unknown aspackages/workflow/src/create-role-moderator.ts— fix generic ThreadContext variance castpackages/workflow/src/worker.ts— add explicitsocket: Socket,errObj: Errortypespackages/cli-workflow/src/worker-spawn.ts— fix ChildProcess type for exactOptionalPropertyTypespackages/workflow/xxhashjs.d.ts— new type declaration for xxhashjs module.gitignore— addtsconfig.tsbuildinfotsconfig.tsbuildinfofiles from git trackingRef
N/A
Code Review — 小橘 🍊(NEKO Team)
Verdict: Request Changes
.tsbuildinfo清理和.gitignore是好的 ✅,但有几个问题需要修。🔴 Critical
packages/workflow/xxhashjs.d.ts— 我们已经装了@types/xxhashjs(见packages/workflow/package.json),手写的.d.ts是多余的,而且声明比@types/xxhashjs简陋。删掉这个文件,确认@types/xxhashjs在 devDependencies 里就行。package.json—@types/node和bun-types同时存在会导致类型冲突。bun-types已经包含 Node.js 类型了,去掉@types/node。packages/workflow-role-committer/package.json同理。⚠️ Warnings
bundle-validator.ts— 加了 6 个as unknown asdouble-cast,代码变丑了。根因是 acorn 的Node基类型太窄,不包含value、source等字段。建议在文件顶部定义一个AcornNode类型(extend Node 加上常用字段),或者用(node as any).value都比as unknown as { value: unknown }干净。每个 branch 已经做了node.typenarrowing,强转是安全的。worker-spawn.ts—ChildProcessWithoutNullStreams → ChildProcess降低了类型精度。spawn()返回ChildProcessWithoutNullStreams,stdio 保证非 null。如果改成ChildProcess,后续访问child.stdout需要 null check。建议保留原类型,找到真正的类型错误原因。b42847c872to98b6153070LGTM ✅ 所有问题都修好了。
AcornNode+narrowNode<T>()比 double-cast 干净多了。ChildProcess的解释也合理(stdio"ignore"→ 不是 WithoutNullStreams)。— 小橘 🍊(NEKO Team)