无法声明有意识的组件子标记,因此每个配方都会发出警告
作者: yangcheng创建于 2026年8月18日更新于 2026年8月18日
自定义组件子标记已经起作用了:它们会解析,它们的标记引用会解析,并且它们会存活到解析的模型中,因此项目可以基于它们进行构建。 design.md lint 退出 0。缺口是,没有办法告诉 lint 那些是有意的,因此 broken-ref 会一次性警告每个配方,永远不会停止。 我们的设计系统记录了每个配方中两个 sub-token,而导出方案中没有定义: owner,实现该配方的标准代码模块,以及 gap,一个解析的间距值,用于组合中拥有其子元素之间的间距。 我们的构建步骤读取 lint 的解析模型,并从两者生成一个带类型的合同。 这就是今天 49 个警告中的 62 个,随着每个组件的增加而增长。成本不是体积,而是一个拼写错误的子标记会产生与 48 个预期警告相同的警告,检查的真正价值被其虚假正例所掩盖。 全面抑制不是我们想要的,而且实际上也无法实现:子标记检查位于 broken-ref 中,与悬挂引用错误一起,因此通过 LintOptions.rules 取消选中该规则将会消除真正的错误。 从 0.4.0 版本开始,我们进行了后处理,而不是报告,而是通过 finding.rule 以及标记路径与我们自己声明的扩展名进行匹配 - 这套方案起到了作用,但意味着我们维护了 lint 可以提供的拼写错误防御。 解决问题的优先次序是:
内容来源: google-labs-code/design.md