Notice

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in our privacy policy. This website also allows you to share additional information with us such as your email. By sharing such information with us you agree to allow us to use it for the purposed inllustrated in our privacy policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to the use of cookies. If you want to know more please refer to our privacy policy.



Hands-On Functional Programming with TypeScript

A Packt Publishing book by Remo H. Jansen




Pre-order now!

PacktPub
functional-typescript
About the book

This book is an introduction to Functional Programming with TypeScript. You will start off by understanding the Functional Programming principles and its main characteristics and benefits. The book starts with an in-depth look to functions and asynchronous programming in TypeScript as well as some runtime-related concepts such as closures. Following this, you will learn about the main functional programming techniques and patterns such as functional composition and currying. You will also learn about Category Theory, lazy evaluation, immutability, and reactive programming. By the end of this book, you will have learned how to apply all these concepts in real-world applications. You will know enough to build cleaner, safer, high-performing TypeScript applications powered by the Functional Programming principles.


1. Functional programming fundamentals

Get familiar with the Functional Programming basics. This chapter explores the main principles and benefits of the functional programming paradigm. Including concepts such as referential transparency and pure functions.

2. Mastering functions

This chapter explores functions in-depth. The chapter explores how to work with functions and arguments in different scenarios. The goal of this chapter is to get familiar with the TypeScript type system features related to functions, arguments and the return type of the functions.

3. Mastering asynchronous programming

This chapter will teach you how to take advantage of the power of asynchronous programming in TypeScript. You will learn how to work with callbacks, promises, async functions, and generators.

4. The runtime: The event loop and the this operator

This chapter explores the JavaScript event loop and the behavior of the "this" operator. The chapter takes an in-depth look at the way our TypeScript is executed as JavaScript code by the runtime after the compilation process.

5. The runtime: Prototypes and closures

This chapter is a continuation of the preceding chapter. It continues exploring some of the JavaScript runtime concepts. This time we will focus on prototypes and closures. At this point, we should have a solid foundation of knowledge about TypeScript, and we are ready to depth-dive in the world of functional programming.

6. Functional programming techniques

This chapter explores the main functional programming techniques and patterns in detail. We will explore concepts such as function partial-application, functional composition, currying. This chapter also explores many other functional programming techniques and patterns such as point-free style.

7. Category theory

This chapter explores Category Theory. You will learn what are algebraic data types and what are the relationships between them. You will then learn to implement some of the main algebraic data types, including a Functor and a Monad.

8. Optics, immutability, and laziness

This chapter explores three important functional programming techniques. You will learn what is lazy-evaluation, what are its benefits and how to implement it. You will also learn about immutable data structures, their benefits and how to implement them. Finally, you will learn about functional optics and how they can help with immutable data structures.

Chapter 9. Functional-reactive programming

This chapter explores the functional-reactive programming paradigm. We will learn what are observables and how they can be used to simplify our code. We will also learn how to use RxJS, the leading reactive-programming library in the JavaScript ecosystem.

10. Real-world Functional programming

In the previous chapters, we tried to avoid using external libraries as much as possible to simplify the learning process. In this chapter will teach you how to use some production-ready functional programming libraries such as Ramda or Funfix to create real-world functional programming applications.

About Remo H. Jansen

Remo H. Jansen is a Microsoft MVP, fullstack JavaScript and TypeScript engineer, open source contributor, entrepreneur, technology lover, gamer, and Internet enthusiast. Remo is originally from Seville, Spain, but currently lives in Dublin, Ireland, where he works as the CEO of Wolk Software Limited.

Remo is the author of InversifyJS (an open source inversion of control container for TypeScript) and has been working on large-scale JavaScript applications for over a decade, from flight booking engines to investment management solutions. Remo is an active member of the TypeScript community, he is organizer of the Dublin TypeScript and Dublin Open Source meetups.

Remo has worked on other Packt Publishing titles:

- Learning TypeScript 2.x, 2018, Author, ISBN 9781788391474
- TypeScript: Modern JavaScript Development, 2016, Co-author, ISBN 9781787289086
- Learning TypeScript, 2015, Author, ISBN 9781783985548
- Mastering TypeScript, 2015, Technical reviewer, ISBN 9781784399665

More from Remo:

Pre-order now!

Explore functional and reactive programming to create robust and testable TypeScript applications.


functional-typescript



PacktPub



© 2018 Remo H. Jansen
All Rights Reserved