Beste praksis for betinget logikk i TypeScript

Beste praksis for betinget logikk i TypeScript

Denne artikkelen forklarer beste praksis for betinget logikk i TypeScript.

YouTube Video

Beste praksis for betinget logikk i TypeScript

Innsnevring av typer med typevakter

Ved å utnytte TypeScripts typesystem og bruke typevakter i if-uttalelser, kan du forbedre typesikkerheten og lesbarheten.

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}

Bruk av typeof og andre typevakter sikrer at koden i hver blokk er typesikker og kontekstuelt relevant.

Unngå nestede if-uttalelser

Dybdenestede if-uttalelser reduserer kodelesbarheten og vedlikeholdbarheten. Bruk i stedet tidlige returverdier, logiske operatorer eller ekstrakte funksjoner.

Dårlig eksempel:

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}

Forbedret eksempel:

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}

Denne tilnærmingen flater ut koden og gjør logikken mer forståelig.

Bruk valgfri kjeding

Når du sjekker nestede egenskaper, bruk valgfri kjeding (?.) for å unngå unødvendige if-betingelser.

Uten valgfri kjeding:

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

Ved bruk av valgfri kjeding:

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

Dette reduserer boilerplate-kode og forbedrer lesbarheten. Her refererer boilerplate-kode til repetitiv, standardisert kode som ofte kreves for å utføre spesifikke oppgaver i programmering.

Bruk strenge likhetsoperatorer

TypeScript støtter streng typifisering, og bruk av streng likhet (===) eller streng ulikhet (!==) bidrar til å forhindre uventet typekonvertering.

Dårlig eksempel:

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

Forbedret eksempel:

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

Bruk enums eller bokstavelige typer for eksplisitte betingelser

Bruk av enums eller bokstavelige typer klargjør betingelser og reduserer sannsynligheten for feil.

 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}

Ved å definere forventede verdier, kan TypeScript oppdage typer og sikre nøyaktighet.

Kombiner lignende betingelser

Når flere betingelser deler samme logikk, konsolider dem ved hjelp av logiske operatorer eller en switch-setning.

Dårlig eksempel:

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

Forbedret eksempel:

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

Alternativt, bruk en switch-setning for å håndtere flere tydelige grener:

 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}

Unngå å gjøre betingede uttrykk komplekse

Komplekse betingede uttrykk i if-setninger reduserer lesbarheten. Trekk dem ut i meningsfulle variabler eller funksjoner.

Dårlig eksempel:

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

Forbedret eksempel:

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

Å gi betingelsene navn forbedrer klarheten og gjør koden selvforklarende.

Bruk ternære operatorer for enkle betingelser

For enkle betingelser gjør bruken av ternære operatorer koden kortfattet.

Eksempel:

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

Unngå imidlertid å bruke ternære operatorer for komplekse betingelser, da det reduserer lesbarheten.

Konklusjon

Ved å følge disse beste praksisene kan du gjøre if-setninger i TypeScript klare, effektive og vedlikeholdbare. Utnytt TypeScript-funksjoner som type guards, optional chaining, og enums for å forbedre lesbarheten og robustheten til koden din. Hold betingelsene kortfattede og klare, og strev etter kode som alltid er lett å forstå og vedlikeholde.

Du kan følge med på artikkelen ovenfor ved å bruke Visual Studio Code på vår YouTube-kanal. Vennligst sjekk ut YouTube-kanalen.

YouTube Video