
عنوان:
Learning TypeScript
نویسنده:
Josh Goldberg
انتشارات:
O'Reilly Media, Inc
تاریخ انتشار:
2022
حجم:
4.46MB
معرفی کتاب:" یادگیری تایپاسکریپت
یادگیری TypeScript: از درک اولیه تا تسلط بر سیستم تایپ در جاوااسکریپت
TypeScript دنیای جاوااسکریپت را متحول کرده است. این زبان، یکی از سریعترین زبانهای در حال رشد جهان است و توسط بسیاری از توسعهدهندگان و شرکتهای تجاری مورد استفاده قرار میگیرد. از اپلیکیشنهای بزرگ سازمانی گرفته تا پروژههای متنباز، TypeScript ستون فقرات توسعهی مدرن در جاوااسکریپت شده است.
اما TypeScript دقیقاً چیست؟ چگونه کار میکند؟ چرا باید از آن استفاده کنیم؟ و چگونه میتوان آن را بهدرستی یاد گرفت و بهکار برد؟
کتاب Learning TypeScript برای پاسخ به این سوالات طراحی شده است. این کتاب توسعهدهندگان مبتدی تا متوسط جاوااسکریپت را از پایه با مفاهیم تایپ، ایمنی کد و ساختاردهی پروژهها در TypeScript آشنا میکند.
آنچه در این کتاب خواهید آموخت:
- تعامل TypeScript با جاوااسکریپت و نحوهی ترجمهی کد
- نحوهی تجزیه و تحلیل کد توسط کامپایلر TS
- گسترش ایمن الگوهای توسعهی موجود
- تسهیل مستندسازی کد با سیستم تایپ دقیق
- ادغام هوشمند با محیطهای توسعه (IDE) و ابزارهای refactoring
- بازسازی ساختاری سریع و امن پروژهها
- افزایش سرعت و پایداری توسعه با کاهش خطاهای منطقی
مخاطب کتاب:
اگر با جاوااسکریپت کار کردهاید و اکنون میخواهید برنامهنویسی خود را ایمنتر، دقیقتر و مقیاسپذیرتر کنید، این کتاب دقیقاً برای شما نوشته شده است. حتی اگر هیچ پیشزمینهای از سیستمهای تایپ ندارید، نویسنده به زبانی ساده و کاربردی شما را راهنمایی میکند.
با یادگیری TypeScript، نهتنها کدهای خود را پایدارتر مینویسید، بلکه بهتر فکر میکنید.
فهرست مطالب
- Cover Page
- Title Page
- Copyright Page
- Dedication Page
- About the Author
- About the Technical Reviewer
- BRIEF CONTENTS
- CONTENTS IN DETAIL
- INTRODUCTION
- On Programming
- Why Language Matters
- What Is JavaScript?
- Code, and What to Do with It
- Overview of This Book
- Typographic Conventions
- 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
- O’Reilly Online Learning
- How to Contact Us
- Acknowledgments
- I. Concepts
- 1. From JavaScript to TypeScript
- History of JavaScript
- Vanilla JavaScript’s 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
- What’s in a Type?
- Type Systems
- Kinds of Errors
- Assignability
- Understanding Assignability Errors
- Type Annotations
- Unnecessary Type Annotations
- Type Shapes
- Modules
- Summary
- 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
- 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
- Summary
- 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
- 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
- Tuple Inferences
- Summary
- 7. Interfaces
- Type Aliases Versus Interfaces
- Types of Properties
- Optional Properties
- Read-Only Properties
- Functions and Methods
- Call Signatures
- 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
- 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
- Type Assertions
- Asserting Caught Error Types
- Non-Null Assertions
- Type Assertion Caveats
- Const Assertions
- Literals to Primitives
- Read-Only Objects
- Summary
- 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
- III. Usage
- 11. Declaration Files
- Declaration Files
- Declaring Runtime Values
- Global Values
- Global Interface Merging
- Global Augmentations
- Built-In Declarations
- Library Declarations
- DOM 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
- Working Effectively with Errors
- Language Service Errors
- Summary
- 13. Configuration Options
- tsc Options
- Pretty Mode
- Watch Mode
- TSConfig Files
- tsc --init
- CLI Versus Configuration
- File Inclusions
- include
- exclude
- Alternative Extensions
- JSX Syntax
- resolveJsonModule
- Emit
- outDir
- target
- Emitting Declarations
- Source Maps
- noEmit
- Type Checking
- lib
- skipLibCheck
- Strict Mode
- Modules
- module
- moduleResolution
- Interoperability with CommonJS
- isolatedModules
- JavaScript
- allowJs
- checkJs
- JSDoc Support
- Configuration Extensions
- extends
- Configuration Bases
- Project References
- composite
- references
- Build Mode
- Summary
- 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
- Changing Modifiers
- Generic Mapped 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
- Glossary
- Index
- About the Author
مشخصات
نام کتاب
Learning TypeScript
نویسنده
Josh Goldberg
انتشارات
O'Reilly Media, Inc
تاریخ انتشار
2022
ISBN
9781098110314
چاپ
اول
تعداد صفحات
414
زبان
انگلیسی
فرمت
حجم
4.46MB
موضوع
programming > TypeScript