"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Cuidados ao usar somente leitura em TypeScript

Cuidados ao usar somente leitura em TypeScript

Publicado em 2024-08-21
Navegar:390

Cautions When Using readonly in TypeScript

O básico da propriedade somente leitura

No Type Script, você pode tornar o objeto das propriedades de um objeto somente leitura.

const person: { readonly name: string  } = { name: 'Mike' }

person.name = 21;
// → Cannot assign to 'name' because it is a read-only property.

⚠️① somente leitura é apenas em tempo de compilação

No código JavaScript compilado, a declaração readonly é removida, portanto não será detectada como um erro em tempo de execução.

⚠️② somente leitura não é recursivo.

const person: {
  readonly name: string;
  readonly academicBackground: {
    primarySchool: string
  }
} = {
  name: 'Mike',
  academicBackground: {
    primarySchool: 'School A'
  }
}

person.academicBackground.primarySchool = 'School B'
// You can change `person.academicBackground.primarySchool`

Se quiser torná-lo somente leitura, você também precisa colocar readonly em PrimarySchool.

const person: {
  readonly name: string;
  readonly academicBackground: {
    readonly primarySchool: string
  }
} = {
  name: 'Mike',
  academicBackground: {
    primarySchool: 'School A'
  }
}

person.academicBackground.primarySchool = 'School B'
// → Cannot assign to 'primarySchool' because it is a read-only property.

Somente leitura

Quando o número de propriedades aumenta, adicionar somente leitura a cada uma delas se torna complicado e aumenta a quantidade de código.
Você pode refatorar usando Readonly.

const obj: {
  readonly a : string;
  readonly b: string;
  readonly c: string;
  readonly d: string;
} = {
  a: 'a',
  b: 'b',
  c: 'c',
  d: 'd'
}

// ↓

const obj: Readonly = {
  a: 'a',
  b: 'b',
  c: 'c',
  d: 'd'
}

Boa codificação☀️

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/noah-00/cautions-when-using-readonly-in-typescript-22d7?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3