Rumah >hujung hadapan web >tutorial js >Awas Apabila Menggunakan baca sahaja dalam TypeScript

Awas Apabila Menggunakan baca sahaja dalam TypeScript

WBOY
WBOYasal
2024-08-11 06:02:01356semak imbas

Cautions When Using readonly in TypeScript

Asas harta baca sahaja

Dalam Skrip Jenis, anda boleh menjadikan objek sifat objek dibaca sahaja.

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

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

⚠️① baca sahaja hanya pada masa penyusunan

Dalam kod JavaScript yang disusun, pengisytiharan baca sahaja dialih keluar, jadi ia tidak akan dikesan sebagai ralat semasa masa jalan.

⚠️② baca sahaja bukan rekursif.

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`

Jika anda ingin menjadikannya baca sahaja, anda juga perlu meletakkan baca sahaja ke 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.

Baca sahaja

Apabila bilangan sifat bertambah, menambah baca sahaja pada setiap satu menjadi menyusahkan dan meningkatkan jumlah kod.
Anda boleh memfaktorkan semula dengan menggunakan Baca Sahaja.

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 : string;
  b: string;
  c: string;
  d: string;
}> = {
  a: 'a',
  b: 'b',
  c: 'c',
  d: 'd'
}

Selamat Mengekod☀️

Atas ialah kandungan terperinci Awas Apabila Menggunakan baca sahaja dalam TypeScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:RedisArtikel seterusnya:Redis