Home Page Icon
Home Page
Table of Contents for
Cover
Close
Cover
by Boris Cherny
Programming TypeScript
Preface
How This Book Is Organized
Style
Conventions Used in This Book
Using Code Examples
O’Reilly Online Learning
How to Contact Us
Acknowledgments
1. Introduction
2. TypeScript: A 10_000 Foot View
The Compiler
The Type System
TypeScript Versus JavaScript
Code Editor Setup
tsconfig.json
tslint.json
index.ts
Exercises
3. All About Types
Talking About Types
The ABCs of Types
any
unknown
boolean
number
bigint
string
symbol
Objects
Intermission: Type Aliases, Unions, and Intersections
Arrays
Tuples
null, undefined, void, and never
Enums
Summary
Exercises
4. Functions
Declaring and Invoking Functions
Optional and Default Parameters
Rest Parameters
call, apply, and bind
Typing this
Generator Functions
Iterators
Call Signatures
Contextual Typing
Overloaded Function Types
Polymorphism
When Are Generics Bound?
Where Can You Declare Generics?
Generic Type Inference
Generic Type Aliases
Bounded Polymorphism
Generic Type Defaults
Type-Driven Development
Summary
Exercises
5. Classes and Interfaces
Classes and Inheritance
super
Using this as a Return Type
Interfaces
Declaration Merging
Implementations
Implementing Interfaces Versus Extending Abstract Classes
Classes Are Structurally Typed
Classes Declare Both Values and Types
Polymorphism
Mixins
Decorators
Simulating final Classes
Design Patterns
Factory Pattern
Builder Pattern
Summary
Exercises
6. Advanced Types
Relationships Between Types
Subtypes and Supertypes
Variance
Assignability
Type Widening
Refinement
Totality
Advanced Object Types
Type Operators for Object Types
The Record Type
Mapped Types
Companion Object Pattern
Advanced Function Types
Improving Type Inference for Tuples
User-Defined Type Guards
Conditional Types
Distributive Conditionals
The infer Keyword
Built-in Conditional Types
Escape Hatches
Type Assertions
Nonnull Assertions
Definite Assignment Assertions
Simulating Nominal Types
Safely Extending the Prototype
Summary
Exercises
7. Handling Errors
Returning null
Throwing Exceptions
Returning Exceptions
The Option Type
Summary
Exercises
8. Asynchronous Programming, Concurrency, and Parallelism
JavaScript’s Event Loop
Working with Callbacks
Regaining Sanity with Promises
async and await
Async Streams
Event Emitters
Typesafe Multithreading
In the Browser: With Web Workers
In NodeJS: With Child Processes
Summary
Exercises
9. Frontend and Backend Frameworks
Frontend Frameworks
React
Angular
Typesafe APIs
Backend Frameworks
Summary
10. Namespaces.Modules
A Brief History of JavaScript Modules
import, export
Dynamic Imports
Using CommonJS and AMD Code
Module Mode Versus Script Mode
Namespaces
Collisions
Compiled Output
Declaration Merging
Summary
Exercise
11. Interoperating with JavaScript
Type Declarations
Ambient Variable Declarations
Ambient Type Declarations
Ambient Module Declarations
Gradually Migrating from JavaScript to TypeScript
Step 1: Add TSC
Step 2a: Enable Typechecking for JavaScript (Optional)
Step 2b: Add JSDoc Annotations (Optional)
Step 3: Rename Your Files to .ts
Step 4: Make It strict
Type Lookup for JavaScript
Using Third-Party JavaScript
JavaScript That Comes with Type Declarations
JavaScript That Has Type Declarations on DefinitelyTyped
JavaScript That Doesn’t Have Type Declarations on DefinitelyTyped
Summary
12. Building and Running TypeScript
Building Your TypeScript Project
Project Layout
Artifacts
Dialing In Your Compile Target
Enabling Source Maps
Project References
Error Monitoring
Running TypeScript on the Server
Running TypeScript in the Browser
Publishing Your TypeScript Code to NPM
Triple-Slash Directives
The types Directive
The amd-module Directive
Summary
13. Conclusion
A. Type Operators
B. Type Utilities
C. Scoped Declarations
Does It Generate a Type?
Does It Merge?
D. Recipes for Writing Declaration Files for Third-Party JavaScript Modules
Types of Exports
Globals
ES2015 Exports
CommonJS Exports
UMD Exports
Extending a Module
Globals
Modules
E. Triple-Slash Directives
Internal Directives
Deprecated Directives
F. TSC Compiler Flags for Safety
G. TSX
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Praise for Programming TypeScript
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset