Hasty Briefsbeta

双语

Making Referential Stability a Type

5 days ago
  • 引入幻影品牌类型 `Stable<T>`,将引用稳定性编码到 TypeScript 类型中,防止无意间重新创建对象、数组和函数。
  • 提供单独的导入 `stableref/react`,其中包含更严格的钩子签名,在未证明稳定性时会在依赖列表上失败,而不是回退到宽松的类型。
  • React 保证状态、setState 和 ref 对象的稳定性;这些自动被标记为 `Stable`。
  • 可以使用 `createStableContext` 强制要求上下文值稳定,确保记忆化边界得到遵守。
  • Preact 有一个平行的入口点 `stableref/preact`,具有相同的严格依赖检查。
  • 限制包括显式类型断言(`as Stable`)和 React 编译器,但这种基于类型的方法补充了自动记忆化。
  • 类型错误被设计为具有描述性信息的可操作护栏,既帮助人类开发者,也帮助 AI 编码代理。
  • 更广泛的愿景超越记忆化,将携带证明的属性跨组件边界和钩子传播。