Pro TypeScript: Application-Scale JavaScript Development Second Edition
زبان TypeScript توسط مایکروسافت خلق و تحت مجوز Apache 2.0 منتشر شد و توسط خودش نیز نگهداری میشود. این زبان تمرکزش بر روی این است تا توسعهی برنامههای جاوا اسکریپت را تا هزاران خط کد افزایش دهد. در حقیقت، مایکروسافت هر دو پورتال مدیریت Azure ( شامل 1.2 میلیون خط کد) و Visual Studio Code Editor (شامل 300000 خط کد) را با تایپ اسکریپت نوشته است. TypeScript هدفش حل مشکلات برنامه نویسی برنامههای بزرگ جاوا اسکریپتی از طریق فراهم کردن ابزارهای بهتر design-time، بررسی زمان کامپایل و بارگذاری پویای ماژول در زمان اجرا است.
همان طور که از زبانی که توسط مایکروسافت به وجود آمده انتظار دارید که پشتیبانی کاملی از TypeScript در ویژوال استادیو وجود داشته باشد، اما خیلی از ابزارهای توسعه دیگر نیز پشتیبانی از این زبان را نیز اضافه کرده اند مثل VS Code، WebStorm، Exlipse، Sublime Text، Vi، Atom، IntelliJ و Emacs.
پشتیبانی گسترده این ابزارها از TypeScript و همچنین لایسنس متن باز آن، تایپ اسکریپت را به گزینه ای قابل اعتماد خارج از اکو سیستم سنتی مایکروسافت تبدیل کرده است.
زبان TypeScript یک superset نوع دار از JavaScript است که به هر شکلی که مایل باشید به جاوا اسکریپت خام کامپایل میشود. بدین شکل برنامه هایی که با TypeScript نوشته میشوند بسیار portable هستند به شکلی میتوان آنها را روی هر ماشینی اجرا کرد مثل مرورگرهای وب، وب سرورها و حتی بر روی برنامههای بومی سیستم عامل هایی که APIهای جاوا اسکریپتی ارائه میدهند مثل WinJS.
این کتاب برای برنامه نویسان و معمارانی است که بر روی برنامههای جاوا اسکریپتی با مقیاس بزرگ کار میکنند، حال چه بر روی مرورگر اجرا میشوند یا سرور و یا حتی سیستم عاملی که APIهای جاوا اسکریپتی در اختیار قرار میدهد. تجربه قبلی با جاوا اسکریپت و یا هر زبان شبه C میتواند به هنگام مطالعه این کتاب مفید باشد.
Explore the features of this innovative open source language in depth, from working with the type system through object-orientation to understanding the runtime and the TypeScript compiler. This fully revised and updated second edition of Steve Fenton’s popular book covers everything you need to discover this fascinating language and transform your experience of JavaScript development.
What’s New in This Edition
Coverage of major changes to modules, namespaces, and module loading
New guidance on how to use inference to reduce the effort of using TypeScript
Recommendations on compiler options
A wide range of feature updates from intersections and tuples to async/await and the new approach to mixins
What You’ll Learn
Understand the TypeScript type system, and how to use it effectively
Apply object-oriented design using TypeScript
Use modules effectively to manage large programs
Integrate existing frameworks and libraries into your TypeScript program
Who This Book Is For
Web developers looking for a modern approach to JavaScript development
Chapter 1: TypeScript Language Features: describes the language features in detail, from simple type annotations to important structural elements, with stand-alone examples of how to use each one.
Chapter 2: Code Organization: clarifies how code can be organized, loaded, and packaged with a view to growing your program to millions of lines of code.
Chapter 3: The Type System: explains the details of working within TypeScript's structural type system and describes the details on type erasure, type inference, and ambient declarations.
Chapter 4: Object Orientation in TypeScript: introduces the important elements of object orientation and contains examples of design patterns and SOLID principles in TypeScript. This chapter also introduces the concept of mixins with practical examples.
Chapter 5: Understanding the Runtime: describes the impact of scope, callbacks, events, and extensions on your program.
Chapter 6: Running TypeScript in a Browser: a thorough walkthrough including working with the Document Object Model, AJAX, session and local storage, IndexedDB, geolocation, hardware sensors, and web workers as well as information on packaging your program for the Web.
Chapter 7: Running TypeScript on a Server: an explanation of running programs on a JavaScript server with examples for Node and a basic end-to-end example application written in Express and Mongoose.
Chapter 8: Exceptions, Memory, and Performance: describes exceptions and exception handling with information on memory management and garbage collection. It includes a simple performance testing utility to exercise and measure your program.
Chapter 9: Using JavaScript Libraries: explains how to consume any of the millions of JavaScript libraries from within your TypeScript program, including information on how to create your own type definitions and how to migrate your JavaScript program to TypeScript.
Chapter 10: Automated Testing: a walkthrough of automated testing in your TypeScript program with examples written using the Jest framework.
Appendix 1: JavaScript Quick Reference: an introduction to the essential JavaScript features for anyone who needs to brush up on their JavaScript before diving into TypeScript.
Appendix 2: TypeScript Compiler: explains how to use the compiler on the command line and describes many of the flags you can pass to customize your build.
Appendix 3: Bitwise Flags: dives into the details of bitwise flags including the low-level details of how they work as well as examples using TypeScript enumerations.
Appendix 4: Coding Katas: introduces the concept of coding katas and provides an example for you to try, along with techniques you can use to make katas more effective.