Amalan Terbaik untuk Logik Bersyarat dalam TypeScript

Amalan Terbaik untuk Logik Bersyarat dalam TypeScript

Artikel ini menerangkan amalan terbaik untuk logik bersyarat dalam TypeScript.

YouTube Video

Amalan Terbaik untuk Logik Bersyarat dalam TypeScript

Menyempitkan Jenis dengan Penjaga Jenis

Dengan memanfaatkan sistem jenis TypeScript dan menggunakan penjaga jenis dalam penyataan if, anda dapat meningkatkan keselamatan jenis dan kebolehbacaan.

1function processInput(input: string | number) {
2    if (typeof input === "string") {
3        console.log(`String input: ${input.toUpperCase()}`);
4    } else {
5        console.log(`Number input: ${input.toFixed(2)}`);
6    }
7}

Menggunakan typeof dan penjaga jenis lain memastikan bahawa kod dalam setiap blok adalah selamat jenis dan relevan dengan konteks.

Elakkan Penyataan if Bersarang

Penyataan if yang bersarang secara mendalam mengurangkan kebolehbacaan dan penyelenggaraan kod. Sebaliknya, gunakan pemulangan awal, operator logik, atau fungsi pengekstrakan.

Contoh Tidak Baik:

1function checkUser(user: { age?: number; isAdmin?: boolean }) {
2    if (user.age) {
3        if (user.age > 18) {
4            if (user.isAdmin) {
5                console.log("User is an adult admin.");
6            }
7        }
8    }
9}

Contoh Diperbaiki:

1function checkUser(user: { age?: number; isAdmin?: boolean }) {
2    if (!user.age || user.age <= 18 || !user.isAdmin) {
3        return;
4    }
5    console.log("User is an adult admin.");
6}

Pendekatan ini mendatarakan kod dan menjadikan logik lebih mudah difahami.

Gunakan Pengekalan Pilihan

Apabila memeriksa sifat bersarang, gunakan pengekalan pilihan (?.) untuk mengelakkan syarat if yang tidak perlu.

Tanpa Pengekalan Pilihan:

1if (user && user.profile && user.profile.email) {
2    console.log(user.profile.email);
3}

Menggunakan Pengekalan Pilihan:

1if (user?.profile?.email) {
2    console.log(user.profile.email);
3}

Ini mengurangkan kod piawai dan meningkatkan kebolehbacaan. Di sini, kod piawai merujuk kepada kod berulang dan standard yang sering diperlukan untuk melaksanakan tugas tertentu dalam pengaturcaraan.

Gunakan Operator Kesaksamaan Ketat

TypeScript menyokong pengetikan ketat, dan penggunaan kesaksamaan ketat (===) atau ketaksamaan ketat (!==) membantu mengelakkan paksaan jenis yang tidak dijangka.

Contoh Tidak Baik:

1if (value == "123") {
2    console.log("Value is 123.");
3}

Contoh Diperbaiki:

1if (value === "123") {
2    console.log("Value is 123.");
3}

Gunakan Enums atau Jenis Literal untuk Syarat Eksplisit

Menggunakan enums atau jenis literal menjelaskan syarat dan mengurangkan peluang kesalahan.

 1type Status = "success" | "error" | "loading";
 2
 3function displayMessage(status: Status) {
 4    if (status === "success") {
 5        console.log("Operation succeeded.");
 6    } else if (status === "error") {
 7        console.log("Operation failed.");
 8    } else {
 9        console.log("Loading...");
10    }
11}

Dengan mentakrifkan nilai yang dijangka, TypeScript dapat mengesan jenis dan memastikan ketepatan.

Gabungkan syarat yang serupa

Apabila banyak syarat berkongsi logik yang sama, satukan mereka dengan menggunakan operator logik atau pernyataan switch.

Contoh Tidak Baik:

1if (role === "admin") {
2    grantAccess();
3}
4if (role === "superadmin") {
5    grantAccess();
6}

Contoh Diperbaiki:

1if (role === "admin" || role === "superadmin") {
2    grantAccess();
3}

Sebagai alternatif, gunakan pernyataan switch untuk menangani cabang-cabang jelas yang berganda:

 1switch (role) {
 2    case "admin":
 3    case "superadmin":
 4        grantAccess();
 5        break;
 6    case "user":
 7        console.log("Limited access.");
 8        break;
 9    default:
10        console.log("No access.");
11}

Elakkan membuat ungkapan bersyarat menjadi rumit

Ungkapan bersyarat yang kompleks dalam pernyataan if mengurangkan kebolehbacaan. Ekstrak ungkapan tersebut ke dalam pembolehubah atau fungsi yang bermakna.

Contoh Tidak Baik:

1if (user.age > 18 && user.isAdmin && user.permissions.includes("write")) {
2    console.log("User can write.");
3}

Contoh Diperbaiki:

1const isAdultAdminWithWriteAccess = user.age > 18 && user.isAdmin && user.permissions.includes("write");
2if (isAdultAdminWithWriteAccess) {
3    console.log("User can write.");
4}

Penamaan syarat meningkatkan kejelasan dan menjadikan kod lebih mudah difahami.

Gunakan operator ternary untuk syarat yang mudah

Untuk syarat yang mudah, menggunakan operator ternary menjadikan kod lebih ringkas.

Contoh:

1const message = isLoggedIn ? "Welcome back!" : "Please log in.";
2console.log(message);

Walau bagaimanapun, elakkan menggunakan operator ternary untuk syarat yang kompleks kerana ia mengurangkan kebolehbacaan.

Kesimpulan

Dengan mengikuti amalan terbaik ini, anda boleh menjadikan pernyataan if dalam TypeScript lebih jelas, cekap, dan mudah diselenggara. Manfaatkan ciri-ciri TypeScript seperti kawalan jenis, rantai opsional, dan enum untuk meningkatkan kebolehbacaan dan kekukuhan kod anda. Pastikan syarat ringkas dan jelas, berusaha menghasilkan kod yang sentiasa mudah difahami dan diselenggara.

Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.

YouTube Video