Skip to content

[Bug]: defineSystem 无法接受 Query(Added/Changed(...)) #52

Description

@ckkkkkkkkks

ESEngine Version

v0.25.0

Component

SDK / Runtime

Description

官方文档“过滤与变更检测”说明可以使用:
Query(Added(HealthComponent));
Query(Changed(Transform));
但将该 Query 作为 defineSystem 的参数时,TypeScript 类型检查失败。
运行时 SDK 已导出 Added、Changed、AddedWrapper 与 ChangedWrapper,
因此这看起来是自动生成的 .d.ts 内部类型约束遗漏,而不是 API 不存在。

Steps to Reproduce

  1. 创建任意自定义组件。
  2. 编写以下 System:
    import { Added, defineComponent, defineSystem, Query } from 'esengine';

const TestComponent = defineComponent('TestComponent', {
value: 0,
});

export const testSystem = defineSystem(
[Query(Added(TestComponent))],
(entities) => {
for (const [entity, component] of entities) {
console.log(entity, component.value);
}
},
);
3.执行 TypeScript 类型检查

Expected Behavior

Query(Added(TestComponent))Query(Changed(TestComponent))
应可直接作为 defineSystem 的依赖参数,且回调正确推断 Query 结果类型

Actual Behavior

Type 'QueryBuilder<[AddedWrapper<...>]>' is not assignable to type 'SystemParam'

Operating System

No response

Browser (if applicable)

No response

Logs / Screenshots

No response

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions