Tal Joffe

All you need is types

Is your TypeScript just Java in disguise? Learn a functional approach using types, not classes, to build truly scalable applications.

All you need is types
#1about 3 minutes

Understanding TypeScript's origins and role in scalability

TypeScript was created for object-oriented developers but can be used in a more native JavaScript style to help manage large-scale projects.

#2about 4 minutes

Achieving scalability with readability, structure, and enforcement

Scalable codebases depend on readability for faster comprehension, clear structure for discoverability, and enforcement to maintain quality over time.

#3about 6 minutes

Improving code structure by separating data from logic

Instead of combining data and behavior in classes, separate them into distinct types for data and functions for logic to create a clearer, more maintainable structure.

#4about 6 minutes

Using types to enforce data integrity and logic patterns

TypeScript natively enforces data shapes, and you can extend this by using utility types and creating custom types to enforce design patterns like CQS.

#5about 8 minutes

Minimizing boilerplate code with advanced TypeScript features

Reduce code overhead by leveraging type inference, avoiding complex OOP patterns, and using utility types like `keyof` and `ReturnType` to generate new types from existing ones.

#6about 7 minutes

Building confidence with static analysis and typed testing

TypeScript's static analysis catches errors at build time, and using explicit types in tests ensures mocks are accurate, leading to more reliable integration tests.

#7about 2 minutes

Summary of using types for scalable codebases

By focusing on types for readability, structure, and enforcement, developers can build scalable applications while minimizing boilerplate through a functional approach.

#8about 6 minutes

Applying clean code principles for naming and errors

Follow the "clean code" principle that names should reveal intent, and adopt a functional approach to error handling by returning errors instead of throwing them.

#9about 3 minutes

Deciding between types, interfaces, and transpilers

Use types and interfaces interchangeably based on preference, with interfaces being more idiomatic for classes, and combine TypeScript with Babel for broader browser compatibility.

#10about 4 minutes

Practical advice on undefined returns and JS migration

Use union types with `undefined` to make potential null states explicit, and migrate existing JavaScript projects by converting code in focused sprints, using `any` as a temporary measure.

Related jobs
Jobs that call for the skills explored in this talk.

test

Milly
Vienna, Austria

Intermediate

test

Milly
Vienna, Austria

Intermediate

Featured Partners

Related Articles

View all articles
TL
Thomas Limbüchler
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...
What is TypeScript?
CH
Chris Heilmann
Dev Digest 136 - No JS(on) of mine
News 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 ...
Dev Digest 136 - No JS(on) of mine
CH
Chris Heilmann
All the videos of Halfstack London 2024!
Last month was Halfstack London, a conference about the web, JavaScript and half a dozen other things. We were there to deliver a talk, but also to record all the sessions and we're happy to share them with you. It took a bit as we had to wait for th...
All the videos of Halfstack London 2024!

From learning to earning

Jobs that call for the skills explored in this talk.