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.