TypeScript Academy · Lektion

Strenghedsflag

Slå streng typning til for mere sikker kode: strict, noImplicitAny, exactOptionalPropertyTypes, noUncheckedIndexedAccess.

Lektion 1 af 38 trin

Strenghedsflag er en gratis TypeScript Academy-lektion på CoddyKit. Dette er lektion 1 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i TypeScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. TypeScript Academy-kurset indeholder 3 lektioner i alt.

Introduktion

Mål: Aktivér og forstå centrale flag for strenghed. Disse indstillinger finder fejl tidligere og forbedrer tip i IDE'en.

  • strict
  • noImplicitAny
  • exactOptionalPropertyTypes
  • noUncheckedIndexedAccess

strict + noImplicitAny

strict aktiverer en samling kontroller, mens noImplicitAny forbyder parametre og variabler uden typer, som ellers får typen any.

// tsconfig.json (excerpt)
{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true
  }
}

// Effect demo
function sum(a, b) { // Error: implicit any
  return a + b;
}

function sumOk(a: number, b: number): number {
  return a + b;
}

exactOptionalPropertyTypes

exactOptionalPropertyTypes skelner mellem fraværende og til stede, men undefined – det er velegnet til modellering af API'er.

// exactOptionalPropertyTypes: true
interface User { name?: string }

const u1: User = {};          // ok: name is absent
const u2: User = { name: undefined }; // Error when exactOptionalPropertyTypes is true

function greet(u: User) {
  if ("name" in u) {
    // name exists but could be undefined without this flag
    console.log("Hi", u.name);
  }
}

Indekseret adgang (array)

Indeksering af arrays giver nu T | undefined. Kontrollér værdien, før du bruger den, for at undgå nedbrud under kørsel.

// noUncheckedIndexedAccess: true
const xs: number[] = [1,2,3];
const maybe = xs[5]; // type: number | undefined
if (maybe !== undefined) {
  console.log(maybe.toFixed(0));
}

Indekseret adgang (map)

Indekseringsresultater fra objekter og Record<K,V> omfatter undefined, indtil du har bevist, at værdien findes.

// Also affects records/maps
const byId: Record<string, { id: string }> = {};
const item = byId["x"]; // { id: string } | undefined
if (item) {
  console.log(item.id);
}

Forudindstilling med strict

Start med strict, og lemp kun reglerne, hvis det er nødvendigt. Disse flag forhindrer almindelige fejl med minimal støj i ny kode.

// tsconfig.json (excerpt)
{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true,
    "exactOptionalPropertyTypes": true,
    "noUncheckedIndexedAccess": true
  }
}

Kontrol af indekseret adgang

Hurtig kontrol: Hvad ændrer noUncheckedIndexedAccess?

Opsummering

Opsummering: strict aktiverer sikrere standarder; noImplicitAny finder manglende typer; exactOptionalPropertyTypes modellerer valgfrie felter præcist; noUncheckedIndexedAccess tvinger kontroller af tilstedeværelse.

Gratis at komme i gang

Lær TypeScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
101
Lektioner
352

Ofte stillede spørgsmål

Er lektionen “Strenghedsflag” gratis?

Ja — hele teksten til “Strenghedsflag” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af TypeScript Academy-kurset, skal du opgradere til CoddyKit PRO. TypeScript Academy-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Strenghedsflag”?

Slå streng typning til for mere sikker kode: strict, noImplicitAny, exactOptionalPropertyTypes, noUncheckedIndexedAccess. Du øver dig i TypeScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på TypeScript Academy?

Der kræves ingen tidligere erfaring. TypeScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 3.

Hvor lang tid tager lektionen “Strenghedsflag”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne TypeScript Academy-lektion?

Ja. Alle TypeScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Strenghedsflag
  2. Indstillinger for target, lib, module og JSX
  3. Project References (introduktion)
← Tilbage til TypeScript Academy