Manfaatkan jenis utilitas TypeScript dan Anda bisa mendapatkan keuntungan dari kode yang lebih ekspresif yang juga lebih kuat.
TypeScript adalah superset JavaScript yang memungkinkan Anda menambahkan pengetikan statis ke basis kode Anda. Dengan sistem tipenya yang kuat, TypeScript menawarkan keterbacaan kode yang lebih baik dan kemampuan untuk menangkap kesalahan selama waktu kompilasi.
Salah satu aspek paling menguntungkan dari TypeScript adalah tipe utilitas bawaannya, yang dapat menyederhanakan upaya pengkodean Anda dan menghemat waktu pengembangan yang berharga. Lihatlah jenis utilitas TypeScript yang harus diketahui ini yang dapat membantu Anda menulis kode yang aman dengan mudah.
TypeScript's Jenis utilitas parsial memungkinkan Anda membuat properti apa pun dari suatu objek opsional. Ini memungkinkan Anda membuat objek dengan properti tertentu yang mungkin hilang atau tidak terdefinisi. Ambil contoh:
antarmuka Pengguna {
nama: rangkaian;
usia: nomor;
surel: rangkaian;
}
Menggunakan
Jenis utilitas parsial, Anda dapat membuat tipe baru dengan semua properti antarmuka Pengguna ditetapkan sebagai opsional:jenis OptionalUser = Parsial
Sekarang, Anda dapat membuat instance dari tipe OptionalUser dengan hanya beberapa properti yang ditentukan:
const pengguna: Pengguna Opsional = { nama: "Yohanes" };
Anda mungkin menghadapi situasi di mana Anda perlu membuat objek dengan properti opsional tertentu. Ini bisa berguna terutama ketika membangun bentuk yang memiliki banyak bidang, karena tidak semuanya mungkin diperlukan dan dalam kasus seperti itu, utilitas parsial dapat menjadi vital.
Jenis utilitas Pick TypeScript dapat membantu Anda menghasilkan tipe baru dengan memilih hanya subset properti dari tipe yang ada. Ini sangat berguna saat Anda perlu mempersempit objek yang lebih besar menjadi hanya beberapa properti yang diperlukan atau jika Anda ingin menerapkan pengetikan yang ketat pada properti yang Anda perlukan.
antarmuka Pengguna {
lokasi: rangkaian;
usia: nomor;
surel: rangkaian;
}jenis PersonWithoutEmail = Pilih
'lokasi' | 'usia'>;
const orang: OrangTanpaEmail = {
lokasi: 'AMERIKA SERIKAT',
usia: 30
};
Dalam contoh ini, antarmuka bernama "Pengguna" mendefinisikan tiga properti: email, usia, dan lokasi.
Dengan menggunakan Pilih jenis utilitas, Anda dapat mengekstrak properti "location" dan "age" secara selektif dari antarmuka User, menghasilkan pembuatan tipe baru yang disebut "PersonWithoutEmail."
Anda kemudian dapat membuat instance baru dari tipe "PersonWithoutEmail" dan menetapkan nilai hanya untuk properti "location" dan "age". Karena properti "email" telah dihilangkan dari tipe ini, Anda tidak dapat menetapkannya ke objek.
Dengan tipe utilitas Pilih, Anda dapat membuat tipe baru yang hanya menggabungkan properti yang Anda inginkan. Ini dapat membantu membuat kode Anda lebih mudah dibaca dan lebih mudah digunakan.
Tipe readonly menandakan bahwa atribut objek tidak dapat diubah setelah dibuat. Jenis ini menjamin konsistensi data objek dalam jangka panjang, menghasilkan penanganan kode yang lebih lancar dan lebih aman.
antarmuka Pengguna {
nama yang hanya bisa dibaca: rangkaian;
usia baca: nomor;
email hanya baca: rangkaian;
}
Menggunakan Jenis utilitas hanya baca, Anda dapat membuat tipe baru dengan semua properti antarmuka Pengguna ditetapkan sebagai hanya-baca:
jenis ReadonlyUser = Hanya baca
Anda dapat menentukan nilai properti saat membuat instance ReadonlyUser ::
const pengguna: ReadonlyUser = {
nama: "Yohanes",
usia: 30,
surel: "[email protected]"
};
Saat Anda menandai properti objek sebagai hanya-baca, mencoba mengubah nilai properti tersebut menjadi tidak mungkin:
nama pengguna = "Jane";
// Kesalahan: Tidak dapat menetapkan ke 'nama' karena merupakan properti hanya-baca.
Jenis Readonly sangat penting dalam situasi di mana Anda ingin memastikan bahwa objek tertentu tidak berubah, bagaimanapun itu direferensikan. Misalnya, jika Anda memiliki objek yang menyimpan pengaturan konfigurasi penting, Anda ingin memastikannya tetap tidak berubah.
Tipe ini memastikan bahwa semua properti penting Object ada, sedangkan tipe Partial menawarkan lebih banyak fleksibilitas dengan membiarkan Anda menentukan subkumpulan properti sambil meninggalkan yang lain opsional. Ini terbukti bermanfaat dalam situasi di mana beberapa properti mungkin tidak diperlukan atau dapat berubah.
antarmuka Pengguna {
nama: rangkaian;
lokasi: nomor;
alamat: rangkaian;
}
Dengan memanfaatkan Jenis utilitas yang diperlukan, dimungkinkan untuk membuat tipe baru yang menggabungkan semua atribut Antarmuka Pengguna sambil mensyaratkan bahwa setiap properti ini harus ada. Pembuatan instance RequiredUser hanya dimungkinkan setelah semua propertinya disetel dengan benar.
const pengguna: Pengguna yang Diperlukan = {
nama: "John Doe",
lokasi: "AMERIKA SERIKAT",
alamat: "Kansas 9745-0622"
};
Memanfaatkan jenis utilitas yang Diperlukan memastikan bahwa semua properti yang diperlukan ada di dalam objek.
Tipe utilitas Omit memungkinkan Anda membuat tipe baru dengan mengecualikan properti tertentu dari tipe yang sudah ada.
antarmuka Orang {
lokasi: rangkaian;
usia: nomor;
surel: rangkaian;
}
jenis PersonWithoutEmail = Abaikan
'surel'>;
const orang: OrangTanpaEmail = { lokasi: "AMERIKA SERIKAT"; usia: 30 };
Antarmuka Orang memiliki tiga properti: usia, lokasi, dan email. Tipe PersonWithoutEmail menggunakan tipe utilitas Omit untuk menyertakan semua properti objek Person, kecuali untuk email. Anda kemudian dapat membuat instance dari tipe baru ini, tanpa menentukan nilai untuk properti email.
Anda harus ingat bahwa tipe utilitas Omit memiliki kemiripan yang signifikan dengan tipe utilitas Pick, karena tipe utilitas ini memberdayakan Anda untuk membuat tipe baru hanya dengan menggunakan properti yang Anda tentukan.
Anda dapat menggunakan tipe utilitas Rekam untuk menentukan tipe objek yang kunci dan nilainya memiliki tipe tertentu. Definisinya adalah:
jenis Catatanmemanjang keyof setiap, T> = { [P di dalam K]: T;};
Ini mengaitkan tipe T dengan nilai setiap kunci, sedangkan K adalah gabungan kunci dari tipe apa pun. Objek yang dihasilkan memiliki tipe properti P yang disetel ke T.
Pertimbangkan skenario tipe objek dengan kunci string dan nilai numerik. Dalam hal ini, Anda dapat menerapkan Rekam jenis utilitas sebagai:
jenis MyRecord = Rekam<rangkaian, nomor>;
const myObject: MyRecord = {
"foo": 1,
"batang": 2,
"baz": 3,
}
Contoh ini menetapkan MyRecord sebagai tipe objek dengan kunci string dan nilai numerik. Objek myObject mewujudkan contoh jenis ini, dengan kunci "foo", "bar", dan "baz" yang ditetapkan ke nilai yang sesuai.
Artikel ini mengungkap kekuatan jenis utilitas TypeScript – mereka bisa menjadi aset berharga dalam hal merampingkan kode Anda dan membuat pengembangan lebih cepat dan lebih efisien. Jenis utilitas ini dan TypeScript secara umum, dapat melakukan keajaiban untuk memastikan bahwa kode Anda selalu bebas dari kesalahan dan mematuhi struktur tertentu.