TypeScript Cheatsheet: Master Core Concepts & Best Practices

Installeren, uitvoeren, typen, klassen, alles wat u moet weten

Inhoud

Hier is mijn overzichtelijke TypeScript cheatsheet die belangrijke concepten, syntaxis en codevoorbeelden behandelt die vaak door ontwikkelaars worden geraadpleegd:

typescript cheatsheet 3d

TypeScript Cheatsheet

Aan de slag

  • Installeer globaal:
    npm install -g typescript
    
  • Compileer bestand:
    tsc filename.ts
    
  • Controleer versie:
    tsc --version
    

Basis Types

let a: number = 10;
let s: string = "TypeScript";
let b: boolean = true;
let arr: number[] = [1, 2, 3];
let tuple: [string, number] = ["TS", 2025];
let anyValue: any = "Flexibel";
let unknownVal: unknown = 5;
let notDefined: undefined = undefined;
let notPresent: null = null;

Unie en Literale Types

let id: number | string = 42;
let direction: 'left' | 'right' = 'left';

Type Aliassen en Interfaces

type Point = { x: number; y: number };
interface Persoon { naam: string; leeftijd: number; }
let gebruiker: Persoon = { naam: "Alice", leeftijd: 25 };

Functies

function som(a: number, b: number): number {
  return a + b;
}
const vermenigvuldig = (a: number, b: number): number => a * b;
function log(msg: string): void { console.log(msg); }

Klassen

class Dier {
  naam: string;
  constructor(naam: string) { this.naam = naam; }
  beweeg(afstand: number = 0): void { console.log(`${this.naam} heeft zich ${afstand} verplaatst`); }
}

Toegangsmodificatoren

  • public (standaard), private, protected, readonly
class Punt {
  constructor(private x: number, private y: number) {}
}

Generieken

function identiteit(arg: T): T { return arg; }
let output = identiteit("myString");

Enums

enum ResourceType { BOEK, BESTAND, FILM }
let r: ResourceType = ResourceType.BOEK;

Type Asserties / Casten

let someVal: unknown = "Hallo";
let strLength: number = (someVal as string).length;

Modules

// Export
export function foo() {}
// Import
import { foo } from "./module";

Geavanceerde Types

  • Intersectie:
    type A = { a: number }; type B = { b: number };
    type AB = A & B; // { a: number, b: number }
    
  • Conditioneel:
    type IsString = T extends string ? true : false;
    
  • Gekarteerd:
    type Readonly = { readonly [P in keyof T]: T[P]; }
    
  • Sjabloonliteraltype:
    type EventName = `on${Capitalize}`;
    

Nuttige Utility Types

Partial, Required, Readonly, Pick, Omit, Record

Narrowing

  • Gebruik typeof en instanceof voor type narrowing:
function padLeft(value: string, padding: string | number) {
  if (typeof padding === "number") {
    return Array(padding + 1).join(" ") + value;
  }
  return padding + value;
}

Deze samenvatting biedt kernsyntaxis en functies die essentieel zijn voor de meeste TypeScript-ontwikkelingsworkflows.