TypeScript Academy · leksjon

null, undefined og strenge nullkontroller

Håndter null og undefined på en trygg måte med strict-modus.

Leksjon 4 av 413 trinn

null, undefined og strenge nullkontroller er en gratis leksjon i TypeScript Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i TypeScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.

Velkommen

I JavaScript er null og undefined vanlige kilder til kjøretidsfeil. TypeScripts strenge nullkontroll tvinger deg til å håndtere dem eksplisitt.

null vs. undefined

`undefined` betyr at en variabel er deklarert, men ikke har fått en verdi. `null` angir et bevisst fravær av verdi. Begge er separate typer i TypeScript.
let a: undefined = undefined;
let b: null = null;

Uten streng nullkontroll

Uten `strictNullChecks` er null og undefined subtyper av alle typer. Dette er standarden i eldre versjoner av TypeScript og er generelt utrygt.
// strictNullChecks: false (unsafe default)
let name: string = null; // allowed — dangerous!

Aktivere streng nullkontroll

Med `strictNullChecks: true` (inkludert i `strict`) kan null og undefined bare tilordnes sine egne typer eller eksplisitte union-typer.
// strictNullChecks: true
let name: string = null; // Error!
let maybeName: string | null = null; // OK

Valgfrie egenskaper

Objektegenskaper som er merket med `?`, er implisitt `T | undefined`. Tilfellet der egenskapen mangler, må håndteres.
interface Config {
  host: string;
  port?: number; // number | undefined
}

const c: Config = { host: 'localhost' };
console.log(c.port?.toString()); // optional chaining

Snevre inn nullable-typer

Bruk en if-sjekk til å snevre inn en union med null eller undefined før du henter egenskaper.
function greet(name: string | null): string {
  if (name === null) return 'Guest';
  return 'Hello, ' + name;
}

Optional chaining (?.)

Operatoren `?.` avslutter uttrykket med `undefined` hvis venstresiden er null eller undefined, og unngår dermed en krasj under kjøring.
const user = getUser();
const city = user?.address?.city; // undefined if any step is null

Nullish coalescing (??)

Operatoren `??` returnerer høyresiden bare når venstresiden er null eller undefined – i motsetning til `||`, som utløses av alle falsy-verdier.
const port = config.port ?? 3000; // 3000 if port is null/undefined
const label = name ?? 'Anonymous';

Non-null assertion-operatoren (!)

Postfiksoperatoren `!` forteller TypeScript at du er sikker på at en verdi ikke er null eller undefined. Bruk den bare når du er helt sikker.
const el = document.getElementById('root')!;
el.textContent = 'Loaded'; // no null check needed

Returnere null vs. undefined

Foretrekk å returnere `null` for å angi et bevisst tomt resultat, og `undefined` for manglende eller valgfrie verdier. Vær konsekvent i kodebasen.
function findUser(id: number): User | null {
  return db.find(u => u.id === id) ?? null;
}

strictNullChecks forhindrer milliarddollarfeilen

Tony Hoare kalte null sin «milliarddollarfeil». TypeScripts strictNullChecks forhindrer krasj forårsaket av null og undefined ved å kreve at disse verdiene håndteres eksplisitt.

Kort kontroll

Hva returnerer operatoren `??` (nullish coalescing) på høyresiden?

Oppsummering

Aktiver strictNullChecks for å forhindre feil med null og undefined. Bruk union-typer for å tillate nullable-verdier, optional chaining (?.) for trygg navigering og nullish coalescing (??) for å angi standardverdier.
Gratis å komme i gang

Lær deg TypeScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
101
Leksjoner
352

Ofte stilte spørsmål

Er leksjonen «null, undefined og strenge nullkontroller» gratis?

Ja – hele teksten i «null, undefined og strenge nullkontroller» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av TypeScript Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «null, undefined og strenge nullkontroller»?

Håndter null og undefined på en trygg måte med strict-modus. Du øver på TypeScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med TypeScript Academy?

Ingen tidligere erfaring er nødvendig. TypeScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «null, undefined og strenge nullkontroller»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne TypeScript Academy-leksjonen?

Ja. Alle TypeScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Primitive typer: string, number, boolean
  2. any-typen og hvorfor den bør unngås
  3. unknown kontra any: Det tryggere valget
  4. null, undefined og strenge nullkontroller
← Tilbake til TypeScript Academy