09 · Estructuras de Datos
Tipos de los campos seleccionados
Define el tipo de una respuesta con User.{ id, name, address.city as city }. Los tipos de los campos proceden de la declaración original. Se rechazan los campos ausentes, inaccesibles o seleccionados dos veces.
En esta página
Define el tipo de una respuesta con User.{ id, name, address.city as city }. Los tipos de los campos proceden de la declaración original. Se rechazan los campos ausentes, inaccesibles o seleccionados dos veces.
Ejemplo completo
Tipos de los campos seleccionados.
65-type-projections.zolo
// Public response types track the model without duplicating its declarations.
struct Address { city: str }
struct User { id: int, name: str, address: Address, internal_note: str }
type PublicUser = User.{ id, name, address.city as city }
fn label(user: PublicUser) -> str = "{user.name} — {user.city}"
let account = User {
id: 42,
name: "Ana",
address: Address { city: "Recife" },
internal_note: "billing contact",
}
let response = account.{ id, name, address.city as city }
print(label(response))
assert_eq(response.id, 42)
Referencia
zolo run examples/features/65-type-projections.zolo --no-cache
Consulta también