Where we're going we don't need JavaScript - Programming with Type Annotations
Your type system is a programming language. Learn to encode business logic directly into your types and make entire classes of bugs impossible at runtime.
#1about 2 minutes
Viewing TypeScript type annotations as a language
TypeScript's type system can be treated as its own functional, set-based programming language.
#2about 2 minutes
Mapping JavaScript syntax to TypeScript type constructs
Learn how JavaScript concepts like variables, functions, and objects correspond to type aliases, generics, and object types.
#3about 2 minutes
Understanding the set-based nature of TypeScript types
All types are fundamentally sets or unions, which simplifies operations and eliminates the need for explicit loops.
#4about 2 minutes
Building a type-level function to filter union types
A practical example demonstrates how to create a generic type that uses conditionals to filter null from a union.
#5about 3 minutes
The motivation for programming with type annotations
Using type-level programming allows you to abstract and enforce core business logic, similar to how high-level languages abstract machine code.
#6about 2 minutes
Deriving concrete types from abstract business rules
Instead of writing types manually, define core business rules as abstract types and then derive all concrete implementation types from them.
#7about 4 minutes
A practical example of a type-safe message bus
The challenge of building a type-safe message bus for a browser extension is introduced as a use case for type-level programming.
#8about 5 minutes
Using generics and keyof to enforce message contracts
The `send` and `on` methods are made type-safe by using generics, the `keyof` operator, and indexed access types derived from a central payload map.
#9about 3 minutes
The benefits of deriving types from first principles
Deriving types from a central source of truth ensures consistency and provides type-level automation across your entire project.
#10about 4 minutes
Q&A on performance, interfaces, and advanced learning
The speaker answers audience questions about runtime performance, the difference between `type` and `interface`, and how to learn advanced TypeScript patterns.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
06:53 MIN
An introduction to TypeScript's core type system
Don't compromise on speedy delivery nor type-safety by choosing TypeScript
What is TypeScript?Since Angular 2 at the latest, TypeScript has been known to many. But what exactly can you do with it, and is it worth changing?Anyone who has worked with programming languages such as Java or C# before will have noticed that JavaScript allows a su...
Chris Heilmann
Dev Digest 136 - No JS(on) of mineNews and ArticlesDouglas Crockford is our featured video, so let's talk about evolving JavaScript and all things JSON. Judicious JSON explains all the weird things in it, you can learn why it can be incredibly slow, people wonder what even is a JSON ...
Benedikt Bischof
How we Build The Software of TomorrowWelcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Thomas Dohmke who introduced us to the future of AI – coding.This is how Thomas describes himself:I am the CEO of GitHub and drive the company’s...
Anto Pranjić
5 Reasons Why Attending Conferences Matters More Than You ThinkIt only took us a global pandemic to realize that most of our daily work can be done from home. It’s kind of funny, but things that weren’t meant to be done from home in the past such as attending meetings, managing teams, and even attending events a...
From learning to earning
Jobs that call for the skills explored in this talk.