来源:docs/PLATFORM_GAPS_FROM_TEMPLATES.md 第 40 条(P2)。
现象
翻译 namespace apps.<name>.navigation 的值必须是 { label: string } 对象,而不是裸字符串:
// ❌ 这样写 build 通过,运行时炸:
navigation: { tickets: '工单' }
// ✅ 必须:
navigation: { tickets: { label: '工单' } }
错误只在浏览器加载时表现为「nav 项不显示 / 报 React 渲染错误」,build 阶段无任何提示。模板作者反复踩坑。
复现
helpdesk 模板写 zh-CN nav 时第一次按裸字符串写,typecheck 通过,浏览器空白。
建议范围
M1:spec 校验
- build 时校验
apps.*.navigation.* 必须为对象形状
- 报清晰错误 + 修复建议
M2:TS 类型严格化
- translations 类型按 namespace 区分形状
- IDE 在编辑时报错而非运行时
M3:可选放宽
- 同时接受裸字符串并自动包成
{ label: string }(向下兼容)
- 加 deprecation warning
验收
现象
翻译 namespace
apps.<name>.navigation的值必须是{ label: string }对象,而不是裸字符串:错误只在浏览器加载时表现为「nav 项不显示 / 报 React 渲染错误」,build 阶段无任何提示。模板作者反复踩坑。
复现
helpdesk模板写 zh-CN nav 时第一次按裸字符串写,typecheck 通过,浏览器空白。建议范围
M1:spec 校验
apps.*.navigation.*必须为对象形状M2:TS 类型严格化
M3:可选放宽
{ label: string }(向下兼容)验收