Book Image

TypeScript Design Patterns

By : Vane
Book Image

TypeScript Design Patterns

By: Vane

Overview of this book

In programming, there are several problems that occur frequently. To solve these problems, there are various repeatable solutions that are known as design patterns. Design patterns are a great way to improve the efficiency of your programs and improve your productivity. This book is a collection of the most important patterns you need to improve your applications’ performance and your productivity. The journey starts by explaining the current challenges when designing and developing an application and how you can solve these challenges by applying the correct design pattern and best practices. Each pattern is accompanied with rich examples that demonstrate the power of patterns for a range of tasks, from building an application to code testing. We’ll introduce low-level programming concepts to help you write TypeScript code, as well as work with software architecture, best practices, and design aspects.
Table of Contents (10 chapters)

Building and testing projects


We have already talked about building and testing TypeScript projects at the beginning of this book. In this section, we will go a little bit further for frontend projects, including the basis of using Webpack to load static assets as well as code linting.

Static assets packaging with webpack

Modularizing helps code keep a healthy structure and makes it maintainable. However, it could lead to performance issues if development-time code written in small modules are directly deployed without bundling for production usage. So static assets packaging becomes a serious topic of frontend engineering.

Back to the old days, packaging JavaScript files was just about uglifying source code and concatenating files together. The project might be modularized as well, but in a global way. Then we have libraries like Require.js, with modules no longer automatically exposing themselves to the global scope.

But as I have mentioned, having the client download module files separately...