Home Page Icon
Home Page
Table of Contents for
Cover
Close
Cover
by Dan Vanderkam
Effective TypeScript
Preface
Who This Book Is For
Why I Wrote This Book
How This Book Is Organized
Conventions in TypeScript Code Samples
Typographical Conventions Used in This Book
Using Code Examples
O’Reilly Online Learning
How to Contact Us
Acknowledgments
1. Getting to Know TypeScript
Item 1: Understand the Relationship Between TypeScript and JavaScript
Item 2: Know Which TypeScript Options You’re Using
Item 3: Understand That Code Generation Is Independent of Types
Item 4: Get Comfortable with Structural Typing
Item 5: Limit Use of the any Type
2. TypeScript’s Type System
Item 6: Use Your Editor to Interrogate and Explore the Type System
Item 7: Think of Types as Sets of Values
Item 8: Know How to Tell Whether a Symbol Is in the Type Space or Value Space
Item 9: Prefer Type Declarations to Type Assertions
Item 10: Avoid Object Wrapper Types (String, Number, Boolean, Symbol, BigInt)
Item 11: Recognize the Limits of Excess Property Checking
Item 12: Apply Types to Entire Function Expressions When Possible
Item 13: Know the Differences Between type and interface
Item 14: Use Type Operations and Generics to Avoid Repeating Yourself
Item 15: Use Index Signatures for Dynamic Data
Item 16: Prefer Arrays, Tuples, and ArrayLike to number Index Signatures
Item 17: Use readonly to Avoid Errors Associated with Mutation
Item 18: Use Mapped Types to Keep Values in Sync
3. Type Inference
Item 19: Avoid Cluttering Your Code with Inferable Types
Item 20: Use Different Variables for Different Types
Item 21: Understand Type Widening
Item 22: Understand Type Narrowing
Item 23: Create Objects All at Once
Item 24: Be Consistent in Your Use of Aliases
Item 25: Use async Functions Instead of Callbacks for Asynchronous Code
Item 26: Understand How Context Is Used in Type Inference
Item 27: Use Functional Constructs and Libraries to Help Types Flow
4. Type Design
Item 28: Prefer Types That Always Represent Valid States
Item 29: Be Liberal in What You Accept and Strict in What You Produce
Item 30: Don’t Repeat Type Information in Documentation
Item 31: Push Null Values to the Perimeter of Your Types
Item 32: Prefer Unions of Interfaces to Interfaces of Unions
Item 33: Prefer More Precise Alternatives to String Types
Item 34: Prefer Incomplete Types to Inaccurate Types
Item 35: Generate Types from APIs and Specs, Not Data
Item 36: Name Types Using the Language of Your Problem Domain
Item 37: Consider “Brands” for Nominal Typing
5. Working with any
Item 38: Use the Narrowest Possible Scope for any Types
Item 39: Prefer More Precise Variants of any to Plain any
Item 40: Hide Unsafe Type Assertions in Well-Typed Functions
Item 41: Understand Evolving any
Item 42: Use unknown Instead of any for Values with an Unknown Type
Item 43: Prefer Type-Safe Approaches to Monkey Patching
Item 44: Track Your Type Coverage to Prevent Regressions in Type Safety
6. Types Declarations and @types
Item 45: Put TypeScript and @types in devDependencies
Item 46: Understand the Three Versions Involved in Type Declarations
Item 47: Export All Types That Appear in Public APIs
Item 48: Use TSDoc for API Comments
Item 49: Provide a Type for this in Callbacks
Item 50: Prefer Conditional Types to Overloaded Declarations
Item 51: Mirror Types to Sever Dependencies
Item 52: Be Aware of the Pitfalls of Testing Types
7. Writing and Running Your Code
Item 53: Prefer ECMAScript Features to TypeScript Features
Item 54: Know How to Iterate Over Objects
Item 55: Understand the DOM hierarchy
Item 56: Don’t Rely on Private to Hide Information
Item 57: Use Source Maps to Debug TypeScript
8. Migrating to TypeScript
Item 58: Write Modern JavaScript
Item 59: Use @ts-check and JSDoc to Experiment with TypeScript
Item 60: Use allowJs to Mix TypeScript and JavaScript
Item 61: Convert Module by Module Up Your Dependency Graph
Item 62: Don’t Consider Migration Complete Until You Enable noImplicitAny
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 Effective 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