0Pricing
TypeScript Academy · Aula

Propriedades readonly e propriedades de parâmetros

Utilize readonly e as propriedades abreviadas do construtor

Propriedades readonly e propriedades de parâmetros é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.

Boas-vindas

readonly impede que as propriedades sejam alteradas após a inicialização. As propriedades de parâmetros combinam a declaração e a inicialização em uma única linha do construtor.

readonly nas propriedades de classes

Declare uma propriedade como readonly para permitir que ela seja definida uma vez, no construtor, mas impedir alterações posteriores.
class Invoice {
  readonly invoiceId: string;
  constructor(id: string) { this.invoiceId = id; }
}
const inv = new Invoice('INV-001');
// inv.invoiceId = 'INV-002'; // Error!

readonly em interfaces

readonly também funciona em interfaces e tipos de objetos para impedir a reatribuição de propriedades.
interface Point { readonly x: number; readonly y: number; }
const p: Point = { x: 5, y: 10 };
// p.x = 0; // Error

Propriedades de parâmetros

Prefixe um parâmetro do construtor com um modificador de acesso para declarar uma propriedade e atribuir seu valor em uma única etapa.
class Product {
  constructor(
    public name: string,
    public price: number,
    private sku: string
  ) {} // no need to write this.name = name; etc.
}

Propriedades de parâmetros readonly

Combine `readonly` com um modificador de acesso para criar propriedades de parâmetros.
class Config {
  constructor(
    public readonly host: string,
    public readonly port: number = 3000
  ) {}
}

Inicialização em declarações

Você pode inicializar uma propriedade readonly no momento da declaração. Depois disso, ela não pode ser alterada.
class AppVersion {
  readonly version: string = '1.0.0';
  readonly buildDate: Date = new Date();
}

readonly versus const

`const` é usado para variáveis com escopo de bloco. `readonly` é usado para propriedades de classes e membros de tipos de objetos. Eles atuam em escopos diferentes.
const API_KEY = 'secret'; // block variable
class Service {
  readonly key: string = API_KEY; // class property
}

Tipo de objeto somente leitura

O tipo utilitário `Readonly` torna todas as propriedades de T readonly. É útil para criar instantâneos imutáveis.
interface User { name: string; age: number; }
const frozen: Readonly<User> = { name: 'Alice', age: 30 };
// frozen.name = 'Bob'; // Error

readonly não congela profundamente

Assim como ReadonlyArray, readonly só impede a reatribuição da própria propriedade — não a alteração do objeto para o qual a propriedade aponta.
class Team {
  readonly members: string[] = [];
}
const t = new Team();
t.members.push('Alice'); // Allowed — the array itself is mutable!
// t.members = []; // Error — can't reassign the property

As propriedades de parâmetros evitam código repetitivo

Sem propriedades de parâmetros, você precisa declarar o campo, declarar o parâmetro do construtor e fazer a atribuição. Com elas, uma única linha executa as três tarefas.
// Without parameter properties (verbose)
class A {
  private x: number;
  constructor(x: number) { this.x = x; }
}
// With parameter properties (concise)
class B {
  constructor(private x: number) {}
}

Quando evitar propriedades de parâmetros

Algumas equipes evitam propriedades de parâmetros em classes grandes porque elas ocultam as declarações de propriedades no corpo da classe, reduzindo a legibilidade imediata.

Verificação rápida

Ao usar uma propriedade de parâmetro no TypeScript, o que continua sendo TRUE sobre o modificador readonly?

Recapitulação

readonly impede a alteração de propriedades após a construção. As propriedades de parâmetros (modificador de acesso + nome do parâmetro) declaram e inicializam propriedades em uma única linha. Combine ambos para criar classes concisas e imutáveis.

Perguntas Frequentes

A aula “Propriedades readonly e propriedades de parâmetros” é grátis?

Sim — o texto completo de “Propriedades readonly e propriedades de parâmetros” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.

O que vou aprender em “Propriedades readonly e propriedades de parâmetros”?

Utilize readonly e as propriedades abreviadas do construtor Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar TypeScript Academy?

Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Propriedades readonly e propriedades de parâmetros”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de TypeScript Academy?

Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Classes e construtores em TypeScript
  2. Modificadores public, private e protected
  3. Propriedades readonly e propriedades de parâmetros
  4. Implementando interfaces com classes
← Voltar para TypeScript Academy