Skip to content

gen:docs 内联形状里的长枚举不省略,单个类型单元格可达约 900 字符(BulkActionDef.params 实例) #5340

Description

@os-zhuang

PM 复核 PR #5339(#4912)时记录的观察类发现,未认领,按 PD#10 立案。不是该 PR 造成的缺陷,但被它放大到可见。

现象

formatType 渲染内联对象时,对已声明键了数量省略(超过 4 个印 ),但对单个键的类型宽度不做任何约束。当某个键的类型是长枚举时,整段形状会撑爆表格单元格。

实例(#4912 修复后的 content/docs/references/ui/bulk-action.mdx,BulkActionDef.params 行):

({ name: string; label?: string; help?: string; type: Enum<'text' | 'textarea' | 'email' |
'url' | 'phone' | 'password' | 'secret' | 'markdown' | 'html' | 'richtext' | 'number' |
'currency' | 'percent' | 'date' | 'datetime' | 'time' | 'boolean' | 'toggle' | 'select' |
… 共约 50 个字段类型 … | 'vector'>; … } & Record<string, any>)[]

单个单元格约 900 字符。同一页的 BulkActionParam.type已经完整印过一次这份词表,所以内联位置的这一份是第二份拷贝。

定性(为什么不是 #4912 的返工项)

#4912 之前该单元格是 Record<string, any>[] —— 更短,但把已声明键整个抹掉,那是实打实的错误信息。修复后的单元格是正确但冗长的。净变化是正向的:作者现在能读到 nametype 是必填(且这两个键就排在最前面)。所以复核判为 ACCEPT,把宽度问题独立记录,而不是让一个正确的修复回退。

长枚举内联本身早于 #4912(任何带枚举键的内联形状都如此,如 gallerycoverFit),只是那些枚举短,没撑爆。

可能的修法(未验证,留给分诊)

  • 内联位置的枚举超过 N 个值时印 Enum<'text' | 'textarea' | … +47>,并保留指向该 schema 自己那一行/页的完整词表(该页通常已有);
  • 或对内联形状整体设字符预算,超出即退化为 object(与嵌套对象保持 opaque 的既有策略同源)。

两种都要逐页确认重生成 diff,与 #4912 同一文件面(packages/spec/scripts/lib/format-type.ts),⛔ 不得手改生成的 .mdx

相关

#4912 / PR #5339(内联形状恢复声明键)、#5338(同一渲染器的数组括号缺陷,164 处)。三单同文件面,须串行,不得同批并行。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions