Dra nytte av TypeScripts verktøytyper, og du kan dra nytte av mer uttrykksfull kode som også er mer robust.

TypeScript er et supersett av JavaScript som lar deg legge til statisk skriving i kodebasen din. Med sitt kraftige typesystem tilbyr TypeScript forbedret kodelesbarhet og muligheten til å fange opp feil under kompileringstiden.

En av de mest fordelaktige aspektene ved TypeScript er dens innebygde verktøytyper, som kan forenkle kodingen din og spare verdifull utviklingstid. Ta en titt på disse TypeScript-verktøytypene du må vite, som kan hjelpe deg med å skrive typesikker kode med letthet.

TypeScript sine Delvis verktøytype lar deg gjøre alle egenskapene til et objekt valgfrie. Den lar deg lage objekter med visse egenskaper som kan mangle eller være udefinerte. Ta for eksempel:

grensesnitt Bruker { 
Navn: streng;
alder: Antall;
e-post: streng;
}

Bruker Delvis brukstype, kan du opprette en ny type med alle egenskapene til brukergrensesnittet som valgfritt:

type OptionalUser = Delvis

Nå kan du opprette en forekomst av typen OptionalUser med bare noen egenskaper definert:

konst bruker: OptionalUser = { navn: "John" };

Du kan støte på situasjoner der du trenger å lage et objekt med visse valgfrie egenskaper. Dette kan komme godt med spesielt når byggeformer som har flere felt, da ikke alle kan være påkrevd, og i slike tilfeller kan delvis nytte være avgjørende.

TypeScripts Pick-verktøytype kan hjelpe deg med å generere en ny type ved å velge bare et undersett av egenskaper fra en eksisterende type. Det kommer godt med når du trenger å begrense et større objekt til bare noen få egenskaper som kreves, eller hvis du vil håndheve streng skriving på egenskapene du trenger.

grensesnitt Bruker { 
plassering: streng;
alder: Antall;
e-post: streng;
}

type PersonWithoutEmail = Velg'plassering' | 'alder'>;

konst person: PersonWithoutEmail = {
plassering: 'USA',
alder: 30
};

I dette eksemplet definerer et grensesnitt kalt "Bruker" tre egenskaper: e-post, alder og plassering.

Ved å bruke Velg verktøytype, kan du trekke ut egenskapene "sted" og "alder" selektivt fra brukergrensesnittet, noe som resulterer i opprettelsen av en ny type kalt "PersonWithoutEmail."

Du kan deretter opprette en ny forekomst av typen "PersonWithoutEmail" og tilordne verdier til bare egenskapene "location" og "age". Siden "email"-egenskapen er utelatt fra denne typen, kan du ikke tilordne den til objektet.

Med Pick-verktøytypen kan du lage en ny type som bare inneholder egenskapene du ønsker. Dette kan bidra til å gjøre koden din mer lesbar og enklere å jobbe med.

Den skrivebeskyttede typen betyr at et objekts attributter er uforanderlige etter at det er opprettet. Denne typen garanterer konsistensen av objektets data i det lange løp, noe som resulterer i jevnere og sikrere kodehåndtering.

grensesnitt Bruker {
skrivebeskyttet navn: streng;
skrivebeskyttet alder: Antall;
skrivebeskyttet e-post: streng;
}

Bruker Skrivebeskyttet verktøytype, kan du opprette en ny type med alle brukergrensesnittegenskaper angitt som skrivebeskyttet:

type ReadonlyUser = Skrivebeskyttet

Du kan angi egenskapsverdier når du oppretter en ReadonlyUser-forekomst::

konst bruker: ReadonlyUser = { 
Navn: "John",
alder: 30,
e-post: "[email protected]"
};

Når du merker egenskapene til et objekt som skrivebeskyttet, blir det umulig å forsøke å endre verdiene til disse egenskapene:

bruker.navn = "Jane";
// Feil: Kan ikke tilordne 'navn' fordi det er en skrivebeskyttet egenskap.

Skrivebeskyttet-typen er spesielt viktig i situasjoner der du vil forsikre deg om at et bestemt objekt ikke endres, uansett hvor det refereres. For eksempel, hvis du har et objekt som har viktige konfigurasjonsinnstillinger, vil du sørge for at det forblir uendret.

Denne typen sikrer at alle et objekts essensielle egenskaper er tilstede, mens den delvise typen gir mer fleksibilitet ved å la deg spesifisere et undersett av egenskaper mens du forlater de andre valgfri. Dette kan vise seg å være fordelaktig i situasjoner der enkelte egenskaper kanskje ikke er nødvendige eller kan endres.

grensesnitt Bruker {
Navn: streng;
plassering: Antall;
adresse: streng;
}

Ved å bruke Nødvendig verktøytype, er det mulig å opprette en ny type som kombinerer alle attributter for brukergrensesnitt samtidig som det kreves at hver av disse egenskapene må være til stede. Opprettelsen av en RequiredUser-forekomst er bare mulig når alle egenskapene er riktig angitt.

konst bruker: RequiredUser = { 
Navn: "John Doe",
plassering: "USA",
adresse: "Kansas 9745-0622"
};

Ved å bruke verktøytypen Påkrevd sikrer du at alle nødvendige egenskaper er tilstede i et objekt.

Utelat-verktøytypen lar deg opprette en ny type ved å ekskludere bestemte egenskaper fra en eksisterende type.

grensesnitt Person {
plassering: streng;
alder: Antall;
e-post: streng;
}

type PersonWithoutEmail = Utelat'e-post'>;
konst person: PersonWithoutEmail = { plassering: "USA"; alder: 30 };

Person-grensesnittet har tre egenskaper: alder, plassering og e-post. PersonWithoutEmail-typen bruker en Utelat-verktøytype for å inkludere alle egenskapene til et Person-objekt, bortsett fra e-post. Du kan deretter opprette en forekomst av denne nye typen, uten å spesifisere en verdi for en e-postegenskap.

Du bør huske på at Utelat-verktøytypen deler betydelige likheter med Pick-verktøytypen, siden den gir deg mulighet til å lage en ny type ved å bruke bare egenskapene du spesifiserer.

Du kan bruke Record-verktøytypen til å definere en objekttype som nøklene og verdiene har en bestemt type for. Definisjonen er:

type Ta oppstrekker nøkkelen til noen, T> = { [P i K]: T;};

Dette assosierer typen T med verdien av hver nøkkel, mens K er en forening av nøkler av enhver type. Det resulterende objektet har egenskapstypen P satt til T.

Vurder scenariet for en objekttype med strengnøkler og numeriske verdier. I så fall kan du bruke Record verktøytype som:

type MyRecord = Record<streng, Antall>;

konst myObject: MyRecord = {
"foo": 1,
"bar": 2,
"baz": 3,
}

Dette eksemplet spesifiserer MyRecord som en objekttype med strengnøkler og numeriske verdier. MyObject-objektet inneholder en eksemplifisering av denne typen, med tastene "foo", "bar" og "baz" tilordnet deres tilsvarende verdier.

Denne artikkelen avslørte den store makten til TypeScript-verktøytyper – de kan være en verdifull ressurs når det gjelder å strømlinjeforme koden din og gjøre utviklingen raskere og mer effektiv. Disse verktøytypene og TypeScript generelt kan gjøre underverker for å sikre at koden din alltid er feilfri og overholder spesifikke strukturer.