training

NL/EN
Deze training is beschikbaar in het Nederlands en Engels. Meer informatie

TypeScript Development

Leer onderhoudbare JavaScript applicaties ontwikkelen met TypeScript.

6 januari 2025
- Veenendaal / Remote
3 dagen
2220 (ex BTW)

Beschrijving

We ontwikkelen vandaag de dag steeds grotere JavaScript-applicaties. Helaas is deze taal hiervoor niet erg geschikt. Daarom gebruiken we TypeScript. TypeScript helpt door JavaScript uit te breiden met een typesysteem. Als gevolg hiervan kun je fouten eerder detecteren en profiteren van betere tooling. Dit alles leidt tot een hogere efficiëntie en codekwaliteit.

In deze training leer je de basis van TypeScript, inclusief primitive types en functions. Vervolgens maak je kennis met meer geavanceerde concepten, zoals literal types, interfaces en generics. Tot slot wordt je expert in je begrip van 'structural typing' door gebruik te maken van mapped types en conditional types.

Er is voldoende tijd om te oefenen, want je implementeert deze concepten in een applicatie die je vanaf de grond opbouwt.

Wist je dat:

  • false === true een compile error is?
  • interfaces niet bestaan in JavaScript?
  • public en private een mythe zijn?
  • een class een andere class kan implementeren (implements)?
  • een interface een class kan uitbreiden (extends)?
  • het definiëren van een class twee dingen doet?
  • TypeScript geen type-safe taal is?
  • er een type bestaat met de naam never?
  • TypeScript support biedt voor exhaustiveness checking?
  • je een for-loop kan schrijven in een type?
  • je een ternary expressie kan gebruiken in een type definitie?
  • je een type kan definiëren met behulp van een template literal?

Leerdoelen

Deze training behandeld de volgende leerdoelen:

CheckmarkContrast TypeScript with JavaScript and older versions of TypeScript
AnalyzeLogo InfoSupport
CheckmarkOutline a modern TypeScript project setup
RememberLogo InfoSupport
CheckmarkImplement type-safety for common types to improve maintainability in a JavaScript application
ApplyLogo InfoSupport
CheckmarkApply interfaces to define the shape of objects and functions
ApplyLogo InfoSupport
CheckmarkDemonstrate functional programming techniques in TypeScript
ApplyLogo InfoSupport
CheckmarkRecognize object-oriented programming syntax in TypeScript
RememberLogo InfoSupport
CheckmarkUse generic type arguments to create reusable code
ApplyLogo InfoSupport
CheckmarkExpress an application architecture across multiple ECMAScript modules in a TypeScript project
UnderstandLogo InfoSupport
CheckmarkUse advanced TypeScript features to improve code quality and maintainability
ApplyLogo InfoSupport
CheckmarkApply utility types to improve type safety
ApplyLogo InfoSupport
CheckmarkProduce DRY and typesafe code by making use of utility types
ApplyLogo InfoSupport
CheckmarkUnderstand asynchronous programming in TypeScript
UnderstandLogo InfoSupport
CheckmarkRecognize the use of template literal for advanced type safety
RememberLogo InfoSupport
Voor bovenstaande leerdoelen gebruiken we de Taxonomie van Bloom

Benodigde voorkennis

Kennis van JavaScript

Onderwerpen

  • Introduction
  • Getting started
  • Types
  • Variable declaration
  • Functions
  • Interfaces
  • Classes
  • Generics
  • Structuring code
  • JavaScript interop
  • Compiler
  • Advanced types
  • Advanced use cases
  • Async/await
  • Mapped types
  • Template literal types
  • Decorators - if time permits
  • JSX Support - if time permits

Introduction

In this chapter, you will learn the context in which to place TypeScript. Goals:

  • Learn how TypeScript relates to JavaScript.
  • Know what "type-safety" means and how it relates to TypeScript
  • Learn to use TypeScript in a regular JavaScript file.

Getting started

In this chapter, you will learn how to create a plain TypeScript application. Goals:

  • Learn the basics of a NodeJS project.
  • Learn the basics of tsc (typescript compiler)
  • Know how to run an application in nodejs
  • Know how to debug a TypeScript application.
  • Learn some basic compiler options.

Types

In this chapter, you will learn how to declare and use primitive types in a TypeScript file. Goals:

  • Know the primitive types.
  • Understand what any does and why not to use it.
  • Learn to use --noImplicitAny
  • Learn to use --strictNullCheck
  • Know the difference between null and undefined.
  • Learn what literal types are.

Variable declaration

In this chapter, you will learn the different ways to declare a variable in TypeScript. Goals:

  • Know the difference between blocked scope and function scope.
  • Learn to use const and let.

Functions

In this chapter, you will learn the different ways to define and use functions and some related ES features. Goals:

  • Learn to use functions in TypeScript
  • Learn to use some recent additions to JavaScript, like spread operator and destructuring.
  • Understand what this points to inside a function.
  • Know the difference between function expressions and arrow functions

Interfaces

This chapter will dive into the heart of the type system: define the shape of objects with interfaces. Goals:

  • Learn what a 'shape' is and how to name one.
  • Learn the different ways to modify properties.
  • Know how to use index accessors.
  • Learn what a method shape is.
  • Learn to use overloading in interfaces.

Classes

In this chapter, you will learn all there is to know about classes in TypeScript. Goals:

  • Learn to use classes.
  • Know the difference between private, public, protected, and ES private.
  • Learn how to use prototypal inheritance.
  • Learn how to use properties and when (not) to use them.
  • Know to associate types with classes and class instances.
  • Learn to love --strictPropertyInitialization.
  • Know how to use method overloading.
  • Learn what this points to inside a class body.

Generics

This chapter dives into generic type argument. Goals:

  • Learn what a generic type argument is and why they are usefull.
  • Learn to use type constraints.
  • Learn to prevent a death by a thousand overloads using spreading parameter types.

Structuring code

In this chapter, you will learn how to scale your TypeScript application across multiple files.

  • Learn the two ways to structure code in TypeScript
  • Learn what a "module" is.
  • Know the different output modes for modules.
  • Know how to consolidate multiple modules into one.
  • Know how to avoid some pitfalls with ES modules.

JavaScript interop

In this chapter, you will learn how to use JavaScript code from TypeScript. Goals:

  • Learn how to import and use JS code.
  • Know what a declaration file is and how to use them.
  • Understand how type-resolution works.

Compiler

This chapter showcases useful compiler options, and introduces you to project references. Goals:

  • Know how to include and exclude TypeScript files.
  • Know all the essential options and strictness options.
  • Understand when to use project references.
  • Learn to split a program into multiple projects with project references.

Advanced types

This chapter showcases advanced type concepts. Goal:

  • Understand the concept of "type compatibility"
  • Learn to combine types with unions and intersections.
  • Learn to name types with an alias
  • Know the concept of a "type query".
  • Learn to love the unknown type.
  • Learn to perform type assertions and type guards

Advanced use cases

In this chapter, you will combine some advanced concepts of the previous chapter into use cases.

  • Learn to create and use a discriminated union.
  • Learn what the never type is and why it s usefull
  • Learn to create an exhaustive check

Async/await

In this chapter, you will learn the concept of "Promises" in JavaScript and what TypeScript adds to this. Goals:

  • Know the concept of "delayed work."
  • Learn to work with promises
  • Understand what async and await do to your program.
  • Learn to use promises in the wild.

Mapped types

In this chapter, you will learn to define for-loops and if-statements inside TypeScripts type system. Goals:

  • Know what a "lookup type" is.
  • Learn how to create a simple mapped type.
  • Know the build-in mapped types.
  • Know what a conditional type is.
  • Learn where conditional types can be helpful.

Template literal types

We end with a grand finally: defining and using template literals inside the type system. Goals:

  • Know what a template literal type is
  • Understand how to create a 'stringly typed' yet type-safe API.
  • Know some basic string manipulation in the type system.

Decorators - if time permits

JSX Support - if time permits

Planning

StartdatumDuurLocatie
6 januari 20257 januari 20258 januari 2025
3 dagen
Veenendaal / Remote
Dit is een hybride training die remote gevolgd kan worden. Meer informatie
Veenendaal / Remote
Dit is een hybride training die remote gevolgd kan worden. Meer informatie
Veenendaal / Remote
Dit is een hybride training die remote gevolgd kan worden. Meer informatie
Inschrijven
3 maart 20254 maart 20255 maart 2025
3 dagen
Utrecht / Remote
Dit is een hybride training die remote gevolgd kan worden. Meer informatie
Utrecht / Remote
Dit is een hybride training die remote gevolgd kan worden. Meer informatie
Utrecht / Remote
Dit is een hybride training die remote gevolgd kan worden. Meer informatie
Inschrijven
7 april 20258 april 20259 april 2025
3 dagen
Veenendaal / Remote
Dit is een hybride training die remote gevolgd kan worden. Meer informatie
Veenendaal / Remote
Dit is een hybride training die remote gevolgd kan worden. Meer informatie
Veenendaal / Remote
Dit is een hybride training die remote gevolgd kan worden. Meer informatie
Inschrijven
Houd me op de hoogte van nieuwe data

Incompany of persoonlijk advies nodig?

Onze opleidingsadviseurs denken graag met je mee om een persoonlijk advies te geven of een incompany training binnen jouw organisatie te vinden.

Trainers

Voorkennis trainingen

"Trainer die zijn vak kent!"
Marc
  • icon

    Hoge waardering

  • icon

    Praktijkgerichte trainingen

  • icon

    Gecertificeerde trainers

  • icon

    Eigen docenten