En cualquier base de código mediana hecha con React o Preact, garantizar que una referencia no cambie entre renderizados exige recordar manualmente reglas que el sistema de tipos no expresa. El ingeniero de software Jovi De Croock propone elevar esa intención al propio tipo mediante un tipo genérico Stable<T> basado en una marca simbólica privada (un unique symbol que no puede falsificarse desde el código de aplicación). El tipo se aplica a objetos, arrays y funciones, mientras que los primitivos pasan sin alterarse, ya que React y Preact los comparan por valor.
La propuesta se materializa en hooks con declaraciones más estrictas exportados desde una entrada específica del paquete, stableref/react y stableref/preact. Cuando una dependencia del array no está respaldada por la marca, el error aparece en el lugar exacto donde se escribió la dependencia, en lugar de propagarse silenciosamente. Además, valores ya garantizados por React, como el estado de useState o el objeto de useRef, se tipifican directamente como Stable<T>, dejando claro que la marca describe la identidad de la referencia, no la inmutabilidad del valor. Para contextos, createStableContext obliga al proveedor a entregar un valor estable, de modo que los consumidores no necesiten conocer cómo se construyó. El texto también aborda sus propias limitaciones: un operador as puede eludir la marca, y herramientas como el React Compiler pueden reducir la necesidad de memoización manual en muchos casos.
