Guía 26 de 53
Consultas estáticas de tipos
Use el tipo comprobado de una expresión sin ejecutarla.
Una anotación typeof usa el tipo comprobado de una expresión. La expresión no se ejecuta, incluso cuando la consulta contiene una llamada a función.
let defaults = .{ host: "localhost", attempts: 3 }
type Options = typeof defaults
fn describe(options: Options) -> str =
"{options.host}: {options.attempts} attempts"
let production: Options = .{ host: "api.example.com", attempts: 5 }
print(describe(production))Options conserva los nombres y tipos de los campos. Un host numérico causa un error de tipos. Use typeof (expresión) para consultar una expresión aritmética o condicional; sin paréntesis, el operando admite referencias, campos, índices y llamadas.
El compilador resuelve inicializadores globales y firmas sin ejecutarlos. Las consultas cíclicas generan un diagnóstico. El formateador conserva la escritura typeof; el compilador la sustituye por la anotación resuelta.
La consulta todavía no puede representar propiedad opaca de máquinas, magnitudes dimensionales, conjuntos abiertos de efectos o funciones con valores predeterminados y testigos de reificación. Estas formas generan un diagnóstico para conservar sus contratos. Los encabezados de funciones extranjeras necesitan tipos explícitos antes de la traducción del provider.
DOCS / OPINIÓN
¿Esta página dejó alguna pregunta?
Cuéntanos dónde te perdió la explicación. La documentación también forma parte de la experiencia del lenguaje.