Readonly
A readonly property can only be initialized once.
interface User { readonly id: number name: string}const user: User = { id: 1, name: "Alice" }user.id = 2type DeepReadonly<T> = { readonly [K in keyof T]: DeepReadonly<T[K]> }interface Config { db: { host: string; port: number }}const config: DeepReadonly<Config> = { db: { host: "localhost", port: 5432 }}// produces a TypeScript errorconfig.db.host = "newhost"