Is your TypeScript just Java in disguise? Learn a functional approach using types, not classes, to build truly scalable applications.
#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.
Exploring TypeScript: Benefits for Large-Scale JavaScript ProjectsJavaScript is the backbone of web development, powering everything from small websites to large-scale enterprise applications. However, as projects grow in complexity, maintaining JavaScript code can become increasingly difficult. This is where TypeS...
Benjamin Ruschin
The HTML Elements That You’re Probably Over-EngineeringAs frameworks have become more and more commonplace in the world of web development, so too has the over-engineering of features made possible by our humble old friend, HTML.
The mental models that come with using state management in React, Vue and o...
Daniel Cranney
How to Avoid Over-EngineeringIn today’s software development world, the demand for designing applications that are both robust and easy to maintain is more pressing than ever. Many developers encounter the architectural chaos left behind in older codebases, leading to frustratio...
SciChart
The Fastest JavaScript Charts - Built for React and BeyondFor most developers, browser charting works fine — until it doesn’t. Once you push beyond tens of thousands of points, add live streaming, or need advanced interactions, the story changes: frame drops, frozen dashboards, memory issues.
That’s where S...
From learning to earning
Jobs that call for the skills explored in this talk.