TypeScript e a palavra chave readonly

4/5/2021

Imutabilidade é muito usado no mundo funcional de JavaScript e TypeScript, você sabia que pode usar a palavra-chave readonly na definição de tipos?

Veja o exemplo abaixo:

/code/tuple.ts
export type Tuple<A, B> = readonly [A, B]

Indicando que o array é imutável (ou oferece apenas acesso de leitura) pode previnir alguns bugs bem chatos envolvendo a mutabilidade de objetos. Veja só quando tento alterar a posição zero da tupla:

/code/tuple.ts
export type Tuple<A, B> = readonly [A, B]

const t: Tuple<string, number> = ['ok', 2]
t[0] = 'not ok'
// Error: Cannot assign to '0' because it is a read-only property.

Lembre-se de que também é possível usar essa palavra chave dentro de objetos e interfaces:

type Product = {
  readonly productId: number;
  readonly price: number;
}

Se você quiser anotar como somente leitura, todas as propriedades de um objeto que é representado por um tipo ou interface, você pode usar o tipo Readonly, veja o exemplo:

type Order = Readonly<{
  orderId: number;
  price: number;
}>

👈 Todos os artigos📝 Edite esta página

🤘

Tenha um dia sublime