«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Меры предосторожности при использовании режима «только чтение» в TypeScript

Меры предосторожности при использовании режима «только чтение» в TypeScript

Опубликовано 21 августа 2024 г.
Просматривать:899

Cautions When Using readonly in TypeScript

Основы свойства readonly

В Type Script можно сделать объект свойств объекта доступным только для чтения.

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

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

⚠️① только чтение доступно только во время компиляции

В скомпилированном коде JavaScript объявление только для чтения удалено, поэтому оно не будет обнаружено как ошибка во время выполнения.

⚠️② режим «только чтение» не является рекурсивным.

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`

Если вы хотите сделать его доступным только для чтения, вам также необходимо установить параметр «только для чтения» для 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.

Только чтение

Когда количество свойств увеличивается, добавление к каждому свойства только для чтения становится громоздким и увеличивает объем кода.
Вы можете выполнить рефакторинг, используя 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'
}

Удачного программирования☀️

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/noah-00/cautions-when-using-readonly-in-typescript-22d7?1. Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3