Explore functional and reactive programming to create robust and testable TypeScript applications
Author(s): Remo H. Jansen
Edition: 1 Edition
Publisher: Packt Publishing Ltd.
Year: 2019
Language: English
Pages: 273
City: Birmingham
Title Page
Copyright and Credits
Hands-On Functional Programming with TypeScript
Dedication
About Packt
Why subscribe?
Packt.com
Foreword
Contributors
About the author
About the reviewers
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Functional Programming Fundamentals
Is TypeScript a functional programming language?
The benefits of functional programming
Introducing functional programming
Pure functions
side-effects
Referential transparency
Stateless versus stateful
Declarative versus imperative programming
Immutability
Functions as first-class citizens
Lambda expressions
Function arity
Higher-order functions
Laziness
Summary
Mastering Functions
Function types
Named and anonymous functions
Function declarations and function expressions
Working with function parameters
Trailing commas in function arguments
Functions with optional parameters
Functions with default parameters
Functions with rest parameters
Function overloading
Specialized overloading signature
Function scope and hoisting
Immediately-invoked functions
Tag functions and tagged templates
Summary
Mastering Asynchronous Programming
Callbacks and higher-order functions
Arrow functions
Callback hell
Promises
Covariant checking in callback parameters
Generators
Asynchronous functions – async and await
Asynchronous generators
Asynchronous iteration (for await…of)
Delegating to another generator (yield*)
Summary
The Runtime – The Event Loop and the this Operator
The environment
Understanding the event loop
Frames
Stack
Queue
Heap
The event loop
The this operator
The this operator in the global context
The this operator in the function context
The call, apply, and bind methods
Summary
The Runtime – Closures and Prototypes
Prototypes
Instance properties versus class properties
Prototypal inheritance
Prototype chains and property shadowing
Accessing the prototype of an object
Closures
Static variables powered by closures
Private members powered by closures
Summary
Functional Programming Techniques
Composition techniques
Composition
Partial application
Currying
strictBindCallApply
Pipes
Other techniques
Point-free style
Recursion
Pattern matching
Summary
Category Theory
Category theory
Functors
Applicative
Maybe
Either
Monads
Summary
Immutability, Optics, and Laziness
Immutability
Optics
Lenses
Prisms
Laziness
Summary
Functional-Reactive Programming
Reactive programming
Functional programming versus functional-reactive programming
The benefits of functional-reactive programming
Working with observables
The observer pattern
The iterator pattern
Creating observables
Creating observables from a value
Creating observables from arrays
Creating observables from events
Creating observables from callbacks
Creating observables from promises
Cold and hot observables
Working with operators
Pipe
Max
Every
Find
Filter
Map
Reduce
Throttle
Merge
Zip
Summary
Real-World Functional Programming
Working with Ramda
Composition
Partial application and currying
Lenses
Working with Immutable.js
Working with Immer
Working with Funfix
Summary
Functional Programming Learning Road Map
Beginner
Advanced beginner
Intermediate
Proficient
Expert
Summary
Directory of TypeScript Functional Programming Libraries
Functional programming
Category theory
Laziness
Immutability
Optics and lenses
Functional-reactive programming
Others
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think