Repository navigation
content/docs/plugins/plugin-{form,grid,view}.mdx 三处 import type 从错误的包导入真实类型 —— 照抄即 TS2305(#5011/#5013/#5014 第二条的文档站镜像) #5086
Description
Activity
立卡人补记(正文末尾 footer 被 issues 端点剥掉,改用评论补):本卡由 #5076 的 os-dev 席在实施 PR #5085 时,用「三个 mdx 代码块里所有
@object-ui/*具名导入 vs 各包已构建dist/index.d.ts导出面」的名集合核对稳定抓到 —— 改前 8 条不成立,PR #5085 修掉其中 3 条虚构名后剩下的正是本卡这 5 条。该单派发边界是「只动三处*Components注册段」,故分离立卡。未认领。
Generated by Claude Code
- addedbugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentation
on Aug 17, 2026 grid 三分之一已随 PR #5103 处理(draft,
Fixes #5087+Part of #5086)。本卡表格里
content/docs/plugins/plugin-grid.mdx那一行(卡面:336,PR #5085 落地后现为:371)与 #5087 的键面重写同处 TypeScript Support 代码块,拆开修会互踩 —— import 行改指@object-ui/types后,紧跟其下的示例字面量必须同时从type: 'grid'改成object-grid、补上objectName,否则标注了ObjectGridSchema的示例自身不成立。故合单。复核结论与卡面逐字一致,证据取自已构建的
dist/index.d.ts,用 TS 编译器 APIchecker.getExportsOfModule(#5043 规格),非 grep src:@object-ui/plugin-grid共 49 个导出名,GridSchema/GridColumn均不在其中。GridSchema在@object-ui/types是 CSS Grid 布局容器(src/layout.ts:202,columns?: number | Record< string, number >,即列数)。GridColumn在@object-ui/fields是行项控件的列(src/widgets/GridField.tsx:76,身份键为name)。- 真身:
@object-ui/types的ObjectGridSchema与ListColumn,两者均 PRESENT。
编译期证据(旧 import 行照抄的后果):
error TS2305: Module '"@object-ui/plugin-grid"' has no exported member 'GridSchema'. error TS2305: Module '"@object-ui/plugin-grid"' has no exported member 'GridColumn'.按 #5011 定调,未为让旧路径成立而新增 re-export。
本卡剩余两处,不在 PR #5103 内:
文件 写的 状态 content/docs/plugins/plugin-form.mdx{ FormSchema, FormField }from@object-ui/plugin-form未处理,可独立派发 content/docs/plugins/plugin-view.mdx{ ObjectViewSchema }from@object-ui/plugin-view未处理;与 #5088 同文件需序,建议 PM 统一安排先后
Generated by Claude Code
view 三分之一已随 PR #5109 处理(draft,
Fixes #5088+Part of #5086)。本卡表格里
content/docs/plugins/plugin-view.mdx那一行(卡面:263)与 #5088 的整页键面重写同处 TypeScript Support 代码块,拆开修会互踩 —— import 行改指@object-ui/types后,紧跟其下的示例字面量必须同时补objectName、去掉viewMode与fields,否则标注了ObjectViewSchema的示例自身不成立。与 PR #5103 处理 grid 三分之一时同一理由,故合单。复核结论与卡面逐字一致,证据取自已构建的
dist/index.d.ts,用 TS 编译器 APIchecker.getExportsOfModule(#5043 规格),非 grep src:@object-ui/plugin-view共 39 个导出名(与卡面记的 39 相符),ObjectViewSchemaABSENT;ObjectViewPropsPRESENT —— 该包导出的是组件 prop 类型,不含任何 schema 类型。- 真身
@object-ui/types(675 个导出名)PRESENT,声明在packages/types/src/objectql.ts:1387。同包并 PRESENT 的还有本页类型表用到的NamedListView/ViewNavigationConfig/ViewTabBarConfig。 packages/plugin-view/src只 import 不 re-export,与卡面判断一致。
编译期证据(旧 import 行照抄的后果),与卡面所记的 TS2305 同形:
error TS2305: Module '"@object-ui/plugin-view"' has no exported member 'ObjectViewSchema'.按 #5011 定调,未为让旧路径成立而新增 re-export。
本卡至此仅余一处:
文件 写的 状态 content/docs/plugins/plugin-form.mdx{ FormSchema, FormField }from@object-ui/plugin-form未处理,可独立派发 grid 处见 PR #5103,view 处见 PR #5109。
Generated by Claude Code
认领(form 处收尾)(PM 派发,objectui 分片):session_01GTRjn8xBqp75dk7kFupVRt,分支
claude/issue-5086-form-mdx-import,os-dev 席即将开工。状态核对:本卡三处中 grid 处已随 PR #5103 落 main(
b29488f3e),view 处已随 PR #5109 验收 undraft + auto-merge 在途 —— 仅余 form 处(content/docs/plugins/plugin-form.mdx的import type { FormSchema, FormField } from '@object-ui/plugin-form')。本席修最后一处,PR 用Fixes #5086收卡(合入时另两处均已落或在队列中,若 PR #5109 意外未合,GitHub 关卡以本 PR 合入为准,PM 会复核后处置)。文件面与在飞席位(plugin-form README 是 #5098 席 —— 不同文件、同包,注意不相交;RelatedList、SchemaRenderer)零重叠。
Generated by Claude Code
form 处(最后三分之一)已随 PR #5119 处理(draft,
Fixes #5086—— 三处至此落齐,故本 PR 直接收卡而非Part of)。基线
origin/main@99d5659df,即 PR #5109 的合入 commit —— 开工时复核确认 view 处已落 main(不再只是「在 auto-merge 队列」),grid 处更早随 PR #5103 落在b29488f3e。复核结论与卡面逐字一致,证据取自已构建的
dist/index.d.ts,用 TS 编译器 APIchecker.getExportsOfModule(#5043 规格),非 grep src:@object-ui/plugin-form共 51 个导出名(与卡面记的 51 相符),FormSchema/FormField均 ABSENT。该包 entry 上的 form 类型是逐容器的那批:TabbedFormSchema、WizardFormSchema、ModalFormSchema、SplitFormSchema、DrawerFormSchema、MasterDetailFormSchema。- 真身
@object-ui/types(675 个导出名)两个都 PRESENT ——FormField@packages/types/src/form.ts:898,FormSchema@:1055。packages/plugin-form/src只 import 不 re-export,与卡面判断一致。
编译期证据(旧 import 行照抄的后果),与 grid / view 两处所记的 TS2305 同形:
error TS2305: Module '"@object-ui/plugin-form"' has no exported member 'FormSchema'. error TS2305: Module '"@object-ui/plugin-form"' has no exported member 'FormField'.同名陷阱侦查(grid 处
GridSchema/GridColumn的前车)——form 这两个名字不构成 grid 那种误导,但有一处值得记录:FormSchema:全仓仅一处类型声明,@objectstack/spec无同名类型,无歧义。FormField:@objectstack/spec(/ui)导出另一个FormField—— zod 推导的线上元数据形状,身份键是field而非name。@object-ui/types正是为免混同,把它另名 re-export 为SpecFormField(packages/types/src/index.ts:1154,表单字段簇:spec↔runtime 是双层词汇——枢纽补缺、覆盖闸门、边界响亮化(objectstack#4115) #3090 tripwire)。本页要的是运行期那个(name键),PR 正文已指名防歧义。
按 #5011 定调,未为让旧路径成立而新增 re-export。
额外发现:旧块除 import 指错外,示例 body 的
fields: [...]还是语法错误(TS1109: Expression expected.)—— 旧块是双重不可编译。PR 已在同一块内给出可编译的真实示例。半径外:同文件另外两段(
### Form Field参考块、### Form with Validation示例)的键面漂移未夹带,已查重后另立 #5118(#5075 的文档站镜像,unassigned)。本卡三处至此全部处理完毕:grid → PR #5103(已落),view → PR #5109(已落),form → PR #5119。
Generated by Claude Code
发现于 #5076 的实施(PR #5085)。Filed unassigned, not claiming。与 #5076 不同性质故分离立卡:#5076 的三个
*Components是全仓不存在的虚构名(运行期Object.entries(undefined)抛 TypeError),本卡的五个名字都是真类型,只是声明在别的包 —— 失败发生在编译期而不是运行期。读数取自
origin/main@03e5f972a160998a694742bd7c72149ae2fa3d8e(PR #5085 落地后行号会前移,判定不变)。现象
dist/index.d.tscontent/docs/plugins/plugin-form.mdx:251import type { FormSchema, FormField } from '@object-ui/plugin-form'@object-ui/types(src/form.ts);plugin-form 只 import 不 re-exportcontent/docs/plugins/plugin-grid.mdx:336import type { GridSchema, GridColumn } from '@object-ui/plugin-grid'@object-ui/types的ObjectGridSchema与ListColumn;而GridSchema这个名字在@object-ui/types里是 CSS Grid 布局容器(columns是列数不是列表),GridColumn在@object-ui/fields里是表单行项控件的列(键为name)content/docs/plugins/plugin-view.mdx:263import type { ObjectViewSchema } from '@object-ui/plugin-view'@object-ui/types(src/objectql.ts:1387);plugin-view 只 import 不 re-export三处都是 TS2305:读者照抄拿不到类型,IDE 直接红。
GridSchema/GridColumn更糟一层 —— 这两个名字在别处存在且指别的东西,读者按名字搜过去会拿到语义完全不同的类型。复核方式
导出面从已构建的
dist/index.d.ts取(TS 编译器 APIchecker.getExportsOfModule,#5043 规格),不是 grep src:真身位置:
与已有卡的关系
formComponents手动注册、FormSchema/FormField从本包导入 #5011 / plugin-grid README 教gridComponents手动注册与GridSchema/GridColumn类型 —— 前两者不存在,GridSchema这个名字在 types 里是 CSS Grid #5013 / plugin-view README 教的viewComponents手动注册不存在,ObjectViewSchema也不从本包导出 #5014 修完(PR docs(plugin-form): README 按真实导出面重写虚构的手动注册与两个协议类型的导入路径 #5079 / docs(plugin-grid): README 按真实导出面重写虚构的手动注册与 GridSchema / GridColumn 类型 #5071 / docs(plugin-view): README 按真实导出面重写虚构的 viewComponents 手动注册,ObjectViewSchema 改从 @object-ui/types 导入 #5078 的第二条)。那七个 PR 的 changed files 全是 README + changeset,content/docs/**一行未碰 —— 与 文档站上还有一份未修的 #5002 家族镜像:content/docs/plugins/plugin-{form,grid,view}.mdx 复制了同一段不存在的*Components手动注册 #5076 是同一个成因。*Components手动注册 #5076 / PR docs(plugins): 三个插件文档页按真实 register 键表重写虚构的*Components手动注册 #5085 的派发边界是「只动三处*Components注册段」,故本卡分离。MapConfig类型不从@object-ui/types导出、API provider 示例是未实现分支 #5019(plugin-map.mdx的MapConfig)不重叠:不同文件、不同名字。修法(与 README 侧三单同口径)
只改 import 路径到
@object-ui/types,示例键面随之对齐真身;⛔ 不为了让旧路径成立而新增 re-export —— 加宽包的公共面是契约变更,不是文档修复(#5011 已就此定调)。分级
未打
finding标签:是读者今天照抄就会撞上的具体缺陷(TS2305),与 #5011 / #5013 / #5014 同性质,只是文件在文档站。交 PM 分诊。