Learning TypeScript - Helion
ISBN: 9781098110284
stron: 320, Format: ebook
Data wydania: 2022-06-03
Księgarnia: Helion
Cena książki: 29,90 zł (poprzednio: 213,57 zł)
Oszczędzasz: 86% (-183,67 zł)
TypeScript has conquered the world of JavaScript. Identified in developer surveys as one of the world's fastest growing and most popular languages, TypeScript is widely used in consumer and business companies across the world and is frequently credited for helping massive web applications scale. But what exactly is TypeScript? How and why does it work, and how can we use it?
This practical book takes beginner and advanced JavaScript programmers alike from knowing nothing about "types" or "type systems" to full mastery of TypeScript fundamentals.
You'll learn:
- Benefits of TypeScript and general characteristics of its type system
- Why and how TypeScript is useful on top of "vanilla" JavaScript
- How to inform your type system by using development-only type annotations
- How TypeScript analyzes and understands code to help you augment your existing development patterns
- How TypeScript helps you work with arrays, classes, functions, objects, and other important built-in JavaScript constructs
- How to effectively use the plethora of TypeScript configuration options to tailor the TypeScript compiler to your teams and projects
- A variety of IDE integrations such as automated refactors and intelligent code searches provided by TypeScript to help you develop quickly with fewer bugs
Osoby które kupowały "Learning TypeScript", wybierały także:
- Cisco CCNA 200-301. Kurs video. Administrowanie bezpieczeństwem sieci. Część 3 665,00 zł, (39,90 zł -94%)
- Cisco CCNA 200-301. Kurs video. Administrowanie urządzeniami Cisco. Część 2 665,00 zł, (39,90 zł -94%)
- Cisco CCNA 200-301. Kurs video. Podstawy sieci komputerowych i konfiguracji. Część 1 665,00 zł, (39,90 zł -94%)
- Impact of P2P and Free Distribution on Book Sales 427,14 zł, (29,90 zł -93%)
- Cisco CCNP Enterprise 350-401 ENCOR. Kurs video. Programowanie i automatyzacja sieci 443,33 zł, (39,90 zł -91%)
Spis treści
Learning TypeScript eBook -- spis treści
- Preface
- Who Should Read This Book
- Why I Wrote This Book
- Navigating This Book
- Examples and Projects
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- I. Concepts
- 1. From JavaScript to TypeScript
- History of JavaScript
- Vanilla JavaScripts Pitfalls
- Costly Freedom
- Loose Documentation
- Weaker Developer Tooling
- TypeScript!
- Getting Started in the TypeScript Playground
- TypeScript in Action
- Freedom Through Restriction
- Precise Documentation
- Stronger Developer Tooling
- Compiling Syntax
- Getting Started Locally
- Running Locally
- Editor Features
- What TypeScript Is Not
- A Remedy for Bad Code
- Extensions to JavaScript (Mostly)
- Slower Than JavaScript
- Finished Evolving
- Summary
- 2. The Type System
- Whats in a Type?
- Type Systems
- Kinds of Errors
- Syntax errors
- Type errors
- Assignability
- Understanding Assignability Errors
- Type Annotations
- Unnecessary Type Annotations
- Type Shapes
- Modules
- Summary
- Whats in a Type?
- 3. Unions and Literals
- Union Types
- Declaring Union Types
- Union Properties
- Narrowing
- Assignment Narrowing
- Conditional Checks
- Typeof Checks
- Literal Types
- Literal Assignability
- Strict Null Checking
- The Billion-Dollar Mistake
- Truthiness Narrowing
- Variables Without Initial Values
- Type Aliases
- Type Aliases Are Not JavaScript
- Combining Type Aliases
- Summary
- Union Types
- 4. Objects
- Object Types
- Declaring Object Types
- Aliased Object Types
- Structural Typing
- Usage Checking
- Excess Property Checking
- Nested Object Types
- Optional Properties
- Unions of Object Types
- Inferred Object-Type Unions
- Explicit Object-Type Unions
- Narrowing Object Types
- Discriminated Unions
- Intersection Types
- Dangers of Intersection Types
- Long assignability errors
- never
- Dangers of Intersection Types
- Summary
- Object Types
- II. Features
- 5. Functions
- Function Parameters
- Required Parameters
- Optional Parameters
- Default Parameters
- Rest Parameters
- Return Types
- Explicit Return Types
- Function Types
- Function Type Parentheses
- Parameter Type Inferences
- Function Type Aliases
- More Return Types
- Void Returns
- Never Returns
- Function Overloads
- Call-Signature Compatibility
- Summary
- Function Parameters
- 6. Arrays
- Array Types
- Array and Function Types
- Union-Type Arrays
- Evolving Any Arrays
- Multidimensional Arrays
- Array Members
- Caveat: Unsound Members
- Spreads and Rests
- Spreads
- Spreading Rest Parameters
- Tuples
- Tuple Assignability
- Tuples as rest parameters
- Tuple Inferences
- Explicit tuple types
- Const asserted tuples
- Tuple Assignability
- Summary
- Array Types
- 7. Interfaces
- Type Aliases Versus Interfaces
- Types of Properties
- Optional Properties
- Read-Only Properties
- Functions and Methods
- Call Signatures
- Index Signatures
- Mixing properties and index signatures
- Numeric index signatures
- Nested Interfaces
- Interface Extensions
- Overridden Properties
- Extending Multiple Interfaces
- Interface Merging
- Member Naming Conflicts
- Summary
- 8. Classes
- Class Methods
- Class Properties
- Function Properties
- Initialization Checking
- Definitely assigned properties
- Optional Properties
- Read-Only Properties
- Classes as Types
- Classes and Interfaces
- Implementing Multiple Interfaces
- Extending a Class
- Extension Assignability
- Overridden Constructors
- Overridden Methods
- Overridden Properties
- Abstract Classes
- Member Visibility
- Static Field Modifiers
- Summary
- 9. Type Modifiers
- Top Types
- any, Again
- unknown
- Type Predicates
- Type Operators
- keyof
- typeof
- keyof typeof
- Type Assertions
- Asserting Caught Error Types
- Non-Null Assertions
- Type Assertion Caveats
- Assertions versus declarations
- Assertion assignability
- Const Assertions
- Literals to Primitives
- Read-Only Objects
- Summary
- Top Types
- 10. Generics
- Generic Functions
- Explicit Generic Call Types
- Multiple Function Type Parameters
- Generic Interfaces
- Inferred Generic Interface Types
- Generic Classes
- Explicit Generic Class Types
- Extending Generic Classes
- Implementing Generic Interfaces
- Method Generics
- Static Class Generics
- Generic Type Aliases
- Generic Discriminated Unions
- Generic Modifiers
- Generic Defaults
- Constrained Generic Types
- keyof and Constrained Type Parameters
- Promises
- Creating Promises
- Async Functions
- Using Generics Right
- The Golden Rule of Generics
- Generic Naming Conventions
- Summary
- Generic Functions
- III. Usage
- 11. Declaration Files
- Declaration Files
- Declaring Runtime Values
- Global Values
- Global Interface Merging
- Global Augmentations
- Built-In Declarations
- Library Declarations
- Library targets
- DOM Declarations
- Library Declarations
- Module Declarations
- Wildcard Module Declarations
- Package Types
- declaration
- Dependency Package Types
- Exposing Package Types
- DefinitelyTyped
- Type Availability
- Summary
- 12. Using IDE Features
- Navigating Code
- Finding Definitions
- Finding References
- Finding Implementations
- Writing Code
- Completing Names
- Automatic Import Updates
- Code Actions
- Renaming
- Removing unused code
- Other quick fixes
- Refactoring
- Working Effectively with Errors
- Language Service Errors
- Problems tab
- Running a terminal compiler
- Understanding types
- Language Service Errors
- Summary
- Navigating Code
- 13. Configuration Options
- tsc Options
- Pretty Mode
- Watch Mode
- TSConfig Files
- tsc --init
- CLI Versus Configuration
- File Inclusions
- include
- exclude
- Alternative Extensions
- JSX Syntax
- jsx
- Generic arrow functions in .tsx files
- resolveJsonModule
- JSX Syntax
- Emit
- outDir
- target
- Emitting Declarations
- emitDeclarationOnly
- Source Maps
- sourceMap
- declarationMap
- noEmit
- Type Checking
- lib
- skipLibCheck
- Strict Mode
- noImplicitAny
- strictBindCallApply
- strictFunctionTypes
- strictNullChecks
- strictPropertyInitialization
- useUnknownInCatchVariables
- Modules
- module
- moduleResolution
- Interoperability with CommonJS
- esModuleInterop
- allowSyntheticDefaultImports
- isolatedModules
- JavaScript
- allowJs
- checkJs
- @ts-check
- JSDoc Support
- Configuration Extensions
- extends
- Extending modules
- Configuration Bases
- extends
- Project References
- composite
- references
- Build Mode
- Coordinator configurations
- Build-mode options
- Summary
- tsc Options
- IV. Extra Credit
- 14. Syntax Extensions
- Class Parameter Properties
- Experimental Decorators
- Enums
- Automatic Numeric Values
- String-Valued Enums
- Const Enums
- Namespaces
- Namespace Exports
- Nested Namespaces
- Namespaces in Type Definitions
- Prefer Modules Over Namespaces
- Type-Only Imports and Exports
- Summary
- 15. Type Operations
- Mapped Types
- Mapped Types from Types
- Mapped types and signatures
- Changing Modifiers
- Generic Mapped Types
- Mapped Types from Types
- Conditional Types
- Generic Conditional Types
- Type Distributivity
- Inferred Types
- Mapped Conditional Types
- never
- never and Intersections and Unions
- never and Conditional Types
- never and Mapped Types
- Template Literal Types
- Intrinsic String Manipulation Types
- Template Literal Keys
- Remapping Mapped Type Keys
- Type Operations and Complexity
- Summary
- Mapped Types
- Glossary
- Index