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)的开发过程扫出。范围外,故单开。

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions