Mörkt tema
Types i TypeScript
💡 Introduktion till ämnet (flipped classroom)
⏰ Tidsåtgång: c.a. 7 min
- 📖 Learning TypeScript av Josh Goldberg: The Type System
- 📖 TypeScript documentation - Types
❓ Våga Fråga
🔈 Transkription
🔈 Video 3 - Types i TypeScript
I den här videon ska vi prata om hur vi deklarera de olika variabeltyperna i JavaScript, fast med TypeScript istället. Exempel på en sträng såg vi ju redan, men vi tar det igen:
ts
const helloWorld: string = 'Hej världen!';1
På samma sätt som i JavaScript väljer vi alltså variabelns typ (const, let, var), ger den ett namn och tilldelar den ett värde. Men special i TypeScript är att vi efter variabelns namn skriver : type. Med detta berättar vi för kompilatorn (den som kollar efter fel i vår kod, som en lite anonym kodhjälps-hustomte) vad just den här variabel ska vara.
Men, vi kan också utesluta : string för TypeScript kan lista ut att vi menar en sträng:
ts
const dramaQueen = 'Donald Trump';1
Då skulle t.ex. följande kod generera ett felmeddelande:
ts
const dramaQueen = 'Donald Trump';
console.log(dramaQueen.length()); // För det ska ju vara dramaQueen.length, utan parenteser1
2
2
Om vi inte vet ännu vilket värde en variabel ska ha, så kan vi deklarera typen och fylla på med värdet senare:
ts
let pizzaName: string;
function makePizza(toppings) {
if (toppings.contains('pineapple')) {
pizzaName = 'Hawaii';
}
}1
2
3
4
5
6
2
3
4
5
6
Övriga typer är:
ts
let num1: number;
let animals: []; // array
let isPlaying: boolean;
const user: object = {};
let coordinates: [number, number]; // tuple - två värden, blir som en array: coordinates[0], coordinates[1], kan också vara olika typer
enum Color {
Red,
Green,
Blue
}
let something: unknown = 4; // kan göras om till t.ex. en sträng senare
let whatever: any; // Kan vara vilken typ som helst
function processSomething(): void {} // void deklarerar att funktionen inte returnerar ett värde
// Not much else we can assign to these variables!
let u: undefined = undefined;
let n: null = null;
let a: never; // Ska aldrig hända1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17