TypeScript Academy · Lektion

Intrinsiske string-manipulationstyper

Brug Uppercase, Lowercase, Capitalize og Uncapitalize

Lektion 4 af 413 trin

Intrinsiske string-manipulationstyper er en gratis TypeScript Academy-lektion på CoddyKit. Dette er lektion 4 af 4. 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 4 lektioner i alt.

Indbyggede strengtransformere

TypeScript leveres med fire indbyggede strengmanipulationstyper: Uppercase, Lowercase, Capitalize og Uncapitalize. De omdanner strengliteraltyper ved kompilering uden omkostninger under kørsel.

Uppercase

Uppercase<S> konverterer hvert tegn i en strengliteraltype til stort. Literalen 'hello' bliver til typen 'HELLO'.

type Loud = Uppercase<"hello"> // "HELLO"
const x: Loud = "HELLO"
console.log(x)

Lowercase

Lowercase<S> gør det modsatte og skriver hvert tegn med småt. 'HELLO' bliver til 'hello'.

type Quiet = Lowercase<"HELLO"> // "hello"
const x: Quiet = "hello"
console.log(x)

Capitalize

Capitalize<S> skriver kun det første tegn med stort, mens resten forbliver uændret. 'name' bliver til 'Name'.

type Title = Capitalize<"name"> // "Name"
const x: Title = "Name"
console.log(x)

Uncapitalize

Uncapitalize<S> skriver kun det første tegn med småt. 'Name' bliver til 'name' — praktisk til at konvertere PascalCase-nøgler til camelCase.

type Camel = Uncapitalize<"Name"> // "name"
const x: Camel = "name"
console.log(x)

Omdannelse af en union

Anvend en indbygget type på en union, så omdannes hvert medlem. Uppercase på 'a' | 'b' giver 'A' | 'B'.

type Keys = "id" | "name"
type Upper = Uppercase<Keys> // "ID" | "NAME"
const k: Upper = "ID"
console.log(k)

Kombination med skabelonliteraler

De indbyggede typer er mest effektive inde i skabelonliteraltyper. En skabelon, der sætter get foran resultatet af Capitalize på et felt, opbygger navne på hentemetoder, f.eks. en hentemetode til navnefeltet.

type Field = "name" | "age"
// template: get + Capitalize<Field> => "getName" | "getAge"
const g: "getName" | "getAge" = "getName"
console.log(g)

Opbygning af nøglenavne i mapningstyper

Ved omdøbning af nøgler i en mapningstype genererer de indbyggede typer transformerede egenskabsnavne — for eksempel ved at omdanne hver egenskab til en nøgle til en behandler med stort begyndelsesbogstav.

type Events = "click" | "drag"
// { [E in Events as on + Capitalize<E>]: () => void }
// produces keys onClick and onDrag
const handlers: { onClick: () => void } = { onClick: () => {} }
console.log(typeof handlers.onClick)

Sammenkædning af indbyggede typer

Du kan indlejre indbyggede typer for at sammensætte omdannelser — en almindelig kombination er f.eks. at anvende Capitalize på en Lowercase-streng for at normalisere store og små bogstaver.

type Normalized = Capitalize<Lowercase<"hELLO">> // "Hello"
const x: Normalized = "Hello"
console.log(x)

Kun ved kompilering

Disse typer findes ikke under kørsel. Hvis du vil omdanne en faktisk strengværdi, kalder du stadig metoder som toUpperCase(); de indbyggede typer former kun de statiske typer.

function shout<S extends string>(s: S): Uppercase<S> {
  return s.toUpperCase() as Uppercase<S>
}
console.log(shout("hi")) // HI, typed as "HI"

Praktiske anvendelser

Brug de indbyggede typer til at udlede konstantnavne, hændelsesnøgler, navne på hente- og sætmetoder samt til at normalisere store og små bogstaver i konfigurationsnøgler med literaltype — alt sammen kontrolleret af kompileren.

type Action = "add" | "remove"
type ActionType = Uppercase<Action> // "ADD" | "REMOVE"
const a: ActionType = "ADD"
console.log(a)

Hurtig kontrol

Afprøv din forståelse af indbyggede strengtyper.

Opsamling

De indbyggede typer Uppercase, Lowercase, Capitalize og Uncapitalize omdanner strengliteraltyper ved kompilering, fordeler sig over unioner og kan sammensættes med skabelonliteral- og mapningstyper for at opbygge nøgle- og behandlernavne. De har ingen funktion under kørsel — brug rigtige strengmetoder til omdannelse under kørsel, mens disse typer former de statiske typer.

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 “Intrinsiske string-manipulationstyper” gratis?

Ja — hele teksten til “Intrinsiske string-manipulationstyper” 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 4 lektioner i alt.

Hvad lærer jeg i “Intrinsiske string-manipulationstyper”?

Brug Uppercase, Lowercase, Capitalize og Uncapitalize 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 4 af 4.

Hvor lang tid tager lektionen “Intrinsiske string-manipulationstyper”?

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. Grundlæggende template literal-typer
  2. Modellering af strukturerede strenge
  3. String-unioner og autocompletion
  4. Intrinsiske string-manipulationstyper
← Tilbage til TypeScript Academy