Strenghedsflag
Slå streng typning til for mere sikker kode: strict, noImplicitAny, exactOptionalPropertyTypes, noUncheckedIndexedAccess.
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.
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.