Skip to content

[finding] theme.zod.ts / chart.zod.ts 里那两段「本块之上不得出现 doc block」的 // 警告,在 #5059 之后已过时(保守但无害) #6137

Description

@os-zhuang

观察项,今天没有任何用户会踩到 —— 照着这两段警告做仍然完全安全,只是理由已经不成立了。不排期,登记备查。

现状

packages/spec/src/ui/theme.zod.ts:11-22packages/spec/src/ui/chart.zod.ts:13-18 各有一段 // 行注释,内容是 #3746 陷阱 1 的自我提醒:

  • theme:「⚠️ Nothing above this block may be a JSDoc block: build-docs.tsgetFileDescription() 把模块的第一个 doc block 发布为参考页描述……而且不要把那个两星记号字面写出来,因为它用裸正则扫原文,即使写在 // 行里也会被当成文件里第一个 doc block」——后半段还记录了这条警告的初稿自己踩中陷阱、把 Color Palette Schema / Defines brand colors… 从已发布页删掉的经过;
  • chart:同形状,指向 theme 里那段更长的说明。

为什么现在过时

#5059(PR #6134)把取块规则改成了「顶层 + 首个声明之前 + 其后不紧跟声明」。两条被警告的危险都不再存在:

  1. 写在这两个块之上的 doc block,如果紧跟着它下面的首个 schema,新规则判它属于那个符号,不会发布;如果被横幅隔开,那它本来就是一段真的模块说明,发布是正确行为。
  2. 「在 // 行里字面写出两星记号也会命中」这条彻底消失:新扫描要求 /** 出现在第 0 列,// … /** … 这样的行以 // 开头,匹配不到。

也就是说这两段注释现在教的是一条比实际更严的自我约束,以及一个已经不存在的次生陷阱。照做无害(不写文件头 JSDoc 永远是安全的),所以这只是指引漂移,不是缺陷。

可能的处置(交分诊)

改写这两段注释,说明真正的规则(「想给这张参考页写开篇,就在文件里放一个不文档任何符号的 doc block;紧贴 schema 写的块归那个 schema」),顺便让 ui/theme / ui/chart 两张页面有机会重新拿到开篇 —— 它们目前的描述来自别处,或者干脆是这两段 // 挡出来的空缺。

落点在 packages/spec/src/**/*.zod.ts,属 domain:spec 车道;#5059 的开发座位被明确限制不得触碰 zod 文件,故只登记不动手。

#5059(PR #6134)的开发过程扫出。范围外,故单开。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions