{
  "action": "Product-ShowQuickView",
  "queryString": "pid=B0DQPQ3RKQ",
  "locale": "default",
  "product": {
    "uuid": "ca917967c29bdd448d497800b5",
    "id": "B0DQPQ3RKQ",
    "productName": "Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights",
    "productType": "standard",
    "brand": "Does Not Apply",
    "price": {
      "sales": {
        "value": 58.8,
        "currency": "AUD",
        "formatted": "A$58.80",
        "decimalPrice": "58.80"
      },
      "list": null
    },
    "renderedPrice": "    <div class=\"price\">\n        \n        \n<span>\n    \n\n    \n\n    \n    <span class=\"sales\">\n        \n        \n        \n            <span class=\"value\" content=\"58.80\"></span>\n        \n        A$58.80\n\n\n    </span>\n</span>\n\n    </div>\n\n\n",
    "images": {
      "large": [
        {
          "alt": "Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights",
          "url": "/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png",
          "index": "0",
          "title": "Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights",
          "absURL": "https://www.emega.com.au/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png"
        },
        {
          "alt": "Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights",
          "url": "/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw959c0781/images/large/71fd6a8b55ee53a743e4cdeddcb1ec25.png",
          "index": "1",
          "title": "Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights",
          "absURL": "https://www.emega.com.au/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw959c0781/images/large/71fd6a8b55ee53a743e4cdeddcb1ec25.png"
        }
      ],
      "small": [
        {
          "alt": "Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights",
          "url": "/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png",
          "index": "0",
          "title": "Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights",
          "absURL": "https://www.emega.com.au/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png"
        },
        {
          "alt": "Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights",
          "url": "/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw959c0781/images/large/71fd6a8b55ee53a743e4cdeddcb1ec25.png",
          "index": "1",
          "title": "Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights",
          "absURL": "https://www.emega.com.au/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw959c0781/images/large/71fd6a8b55ee53a743e4cdeddcb1ec25.png"
        }
      ]
    },
    "selectedQuantity": 1,
    "minOrderQuantity": 1,
    "maxOrderQuantity": 10,
    "variationAttributes": null,
    "longDescription": "<div> <div> <div> <p><span>Unlock TypeScript 5 patterns for durable, maintainable apps with modern techniques. </span></p><h4><span>Key Features</span></h4><ul><li><span><span>Avoid common pitfalls and anti-patterns in TypeScript app development</span></span></li><li><span><span>Leverage functional and reactive paradigms for effective TypeScript development</span></span></li><li><span><span>Discover how to improve your application’s code reusability and testability</span></span></li><li><span><span>Purchase of the print or Kindle book includes a free PDF eBook</span></span></li></ul><h4><span>Book Description</span></h4><p><span>Design patterns are the foundation of many world-class software applications, from commercial solutions to open-source projects. This guide equips you with the skills to architect robust, scalable, and maintainable TypeScript 5 applications. Whether you're looking to master modern TypeScript or apply proven software architecture patterns effectively, this book is your go-to resource. </span></p><p><span>Written by Theofanis Despoudis, a recognized TypeScript expert, this second edition is fully updated with TypeScript 5’s latest features, including improved type inference, union enums, and decorators. These updates will help you write cleaner, more maintainable code that adapts to future changes. You’ll dive into classic Gang of Four design patterns through both traditional and modern real-world implementations, gaining hands-on experience with practical applications. You’ll also gain a clear understanding of the power of functional and reactive programming patterns specifically designed for idiomatic TypeScript development. </span></p><p><span>By the end of this book, you’ll be able to identify and apply the right design pattern for any scenario and craft well-structured, maintainable, and testable code. </span></p><h4><span>What you will learn</span></h4><ul><li><span><span>Understand the principles of design patterns and their role in TypeScript development</span></span></li><li><span><span>Learn essential patterns, including creational, structural, and behavioral, with TypeScript</span></span></li><li><span><span>Differentiate between patterns and design concepts and apply them effectively</span></span></li><li><span><span>Gain hands-on experience implementing patterns in real-world TypeScript projects</span></span></li><li><span><span>Explore advanced techniques from functional and reactive programming paradigms</span></span></li><li><span><span>Write efficient, high-quality TypeScript code that enhances performance and flexibility</span></span></li></ul><h4><span>Who this book is for</span></h4><p><span>If you are a TypeScript developer working on frontend, backend, or full-stack applications looking to learn how to apply established design patterns to solve common programming problems instead of reinventing solutions, you'll find this book useful. Prior knowledge of design patterns is not necessary—all you need is basic TypeScript knowledge to get started with this book. </span></p><h4><span>Table of Contents</span></h4><ol><li><span><span>Getting Started with TypeScript 5</span></span></li><li><span><span>TypeScript Core Principles</span></span></li><li><span><span>Creational Design Patterns </span></span></li><li><span><span>Structural Design Patterns</span></span></li><li><span><span>Behavioral Design Patterns for Object Communication</span></span></li><li><span><span>Behavioral Design Patterns for Managing State and Behavior</span></span></li><li><span><span>Functional Programming with TypeScript</span></span></li><li><span><span>Reactive and Asynchronous Programming</span></span></li><li><span><span>Developing Modern and Robust TypeScript Applications</span></span></li><li><span><span>Anti-Patterns and Workarounds</span></span></li><li><span><span>Exploring Design Patterns in Open Source Architectures</span></span></li></ol> </div> </div> </div><div><h2>Item Details</h2><ul><li><strong>Publisher:</strong> Packt Publishing</li><li><strong>Dimensions:</strong> 2.24 x 19.05 x 23.5 cm</li><li><strong>Language:</strong> English</li><li><strong>Print length:</strong> 424 pages</li><li><strong>Item weight:</strong> 903 g</li><li><strong>Edition:</strong> 2nd ed.</li><li><strong>Book Type:</strong> Paperback</li><li><strong>ISBN-13:</strong> 978-1835883228</li><li><strong>Publication date:</strong> 27 February 2025</li></ul></div>",
    "shortDescription": null,
    "rating": 5,
    "promotions": null,
    "attributes": null,
    "availability": {
      "messages": [
        "In Stock"
      ],
      "inStockDate": null
    },
    "available": true,
    "options": [],
    "quantities": [
      {
        "value": "1",
        "selected": true,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=1"
      },
      {
        "value": "2",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=2"
      },
      {
        "value": "3",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=3"
      },
      {
        "value": "4",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=4"
      },
      {
        "value": "5",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=5"
      },
      {
        "value": "6",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=6"
      },
      {
        "value": "7",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=7"
      },
      {
        "value": "8",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=8"
      },
      {
        "value": "9",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=9"
      },
      {
        "value": "10",
        "selected": false,
        "url": "/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&quantity=10"
      }
    ],
    "selectedProductUrl": "/eMEGA/B0DQPQ3RKQ.html?%2FeMEGA%2FB0DQPQ3RKQ.html=undefined&quantity=undefined",
    "readyToOrder": true,
    "online": true,
    "pageTitle": null,
    "pageDescription": null,
    "pageKeywords": null,
    "pageMetaTags": [
      {},
      {},
      {},
      {}
    ],
    "template": null
  },
  "addToCartUrl": {},
  "resources": {
    "info_selectforstock": "Select Styles for Availability",
    "assistiveSelectedText": "selected"
  },
  "quickViewFullDetailMsg": "View Full Details",
  "closeButtonText": "Close Quickview Dialog",
  "enterDialogMessage": "Start of Quickview dialog window. Select Close to cancel and close the window.",
  "template": "product/quickView.isml",
  "renderedTemplate": "<div class=\"product-quickview product-standard col product-wrapper product-detail\" data-pid=\"B0DQPQ3RKQ\">\n    <div class=\"row\">\n        <!-- Product Images Carousel -->\n        \n\n<div class=\"primary-images col-12 col-sm-6 cst-gallery-wrap\">\n\n    \n    <div id=\"pdpCarousel-B0DQPQ3RKQ\" class=\"carousel slide cst-original-carousel\" data-interval=\"0\"\n        data-prev=\"Previous\"\n        data-next=\"Next\">\n        \n            <ol class=\"carousel-indicators\" aria-hidden=\"true\">\n                \n                    <li data-target=\" #pdpCarousel-B0DQPQ3RKQ\" data-slide-to=\"0\"\n                        class='active'></li>\n                \n                    <li data-target=\" #pdpCarousel-B0DQPQ3RKQ\" data-slide-to=\"1\"\n                        class=''></li>\n                \n            </ol>\n        \n        <div class=\"carousel-inner\" role=\"listbox\">\n            \n                <div class='carousel-item active'>\n                    <img src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png\" class=\"d-block img-fluid\" alt=\"Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights image number 0\"\n                        itemprop=\"image\" />\n                </div>\n            \n                <div class='carousel-item '>\n                    <img src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw959c0781/images/large/71fd6a8b55ee53a743e4cdeddcb1ec25.png\" class=\"d-block img-fluid\" alt=\"Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights image number 1\"\n                        itemprop=\"image\" />\n                </div>\n            \n        </div>\n        \n            <a class=\"carousel-control-prev\" href=\" #pdpCarousel-B0DQPQ3RKQ\" role=\"button\" data-slide=\"prev\">\n                <span class=\"fa icon-prev\" aria-hidden=\"true\"></span>\n                <span class=\"sr-only\">Previous</span>\n            </a>\n            <a class=\"carousel-control-next\" href=\" #pdpCarousel-B0DQPQ3RKQ\" role=\"button\" data-slide=\"next\">\n                <span class=\"fa icon-next\" aria-hidden=\"true\"></span>\n                <span class=\"sr-only\">Next</span>\n            </a>\n        \n    </div>\n\n    \n    <div class=\"cst-gallery\" id=\"cst-gallery-B0DQPQ3RKQ\" data-pid=\"B0DQPQ3RKQ\" data-title=\"Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights\"\n        data-first-img=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png\">\n\n        \n        <div class=\"cst-gallery__thumbs\" id=\"cst-thumbs-B0DQPQ3RKQ\">\n            \n                \n                    <button class=\"cst-gallery__thumb is-active\"\n                type=\"button\" data-index=\"0\" data-large=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png\"\n                aria-label=\"Image 1\">\n                <img src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png\" alt=\"Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights\" loading=\"lazy\" />\n                </button>\n                \n            \n                \n                    <button class=\"cst-gallery__thumb \"\n                type=\"button\" data-index=\"1\" data-large=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw959c0781/images/large/71fd6a8b55ee53a743e4cdeddcb1ec25.png\"\n                aria-label=\"Image 2\">\n                <img src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw959c0781/images/large/71fd6a8b55ee53a743e4cdeddcb1ec25.png\" alt=\"Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights\" loading=\"lazy\" />\n                </button>\n                \n            \n            \n        </div>\n\n        \n        <div class=\"cst-gallery__main\">\n            <div class=\"cst-gallery__main-inner\" id=\"cst-main-inner-B0DQPQ3RKQ\">\n                <img class=\"cst-gallery__main-img\" id=\"cst-main-img-B0DQPQ3RKQ\"\n                    src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png\" alt=\"Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights\" />\n                <div class=\"cst-gallery__zoom-panel\" id=\"cst-zoom-panel-B0DQPQ3RKQ\">\n                    <img class=\"cst-gallery__zoom-img\" id=\"cst-zoom-img-B0DQPQ3RKQ\"\n                        src=\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png\" alt=\"\" />\n                </div>\n                <div class=\"cst-gallery__fullview-overlay\" id=\"cst-fullview-B0DQPQ3RKQ\">\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\n                        stroke-width=\"2.5\">\n                        <circle cx=\"11\" cy=\"11\" r=\"8\" />\n                        <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n                        <line x1=\"11\" y1=\"8\" x2=\"11\" y2=\"14\" />\n                        <line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\" /></svg>\n                    Click to see full view\n                </div>\n            </div>\n        </div>\n    </div>\n\n    \n\n    <script type=\"application/json\" id=\"cst-imgs-B0DQPQ3RKQ\">\n        [{\"url\":\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw44b87116/images/large/0115a575c7212a8f1253f21ebe2929fa.png\",\"alt\":\"Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights\"},{\"url\":\"/on/demandware.static/-/Sites-storefront-catalog-m-en/default/dw959c0781/images/large/71fd6a8b55ee53a743e4cdeddcb1ec25.png\",\"alt\":\"Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights\"}]\n        </script>\n\n\n</div>\n\n        <!-- Product Name and Number -->\n        <div class=\"col-sm-6\">\n            <div class=\"row\">\n                <div class=\"col\">\n                    <section>\n                        <h1 class=\"product-name\">Typescript 5 Design Patterns and Best Practices: Build Clean and Scalable Apps with Proven Patterns and Expert Insights</h1>\n                    </section>\n                </div>\n            </div>\n\n            <div class=\"detail-panel\">\n                <!-- Attributes -->\n                <section class=\"attributes\">\n\n                    <div class=\"row\">\n    <div class=\"col\">\n        \n    </div>\n</div>\n\n\n                        \n\n                        <div class=\"d-sm-none row availability align-self-end \" data-ready-to-order=\"true\" data-available=\"true\">\n                            \n<div class=\"col-4\">\n    <span class=\"availability non-input-label\">\n        Availability:\n    </span>\n</div>\n<div class=\"col-8\">\n    <ul class=\"list-unstyled availability-msg\">\n        <li>\n            \n                \n                    <div>In Stock</div>\n                \n            \n        </li>\n    </ul>\n</div>\n\n\n                        </div>\n\n                    <hr>\n\n                    <!-- Applicable Promotions -->\n                    <div class=\"row\">\n                        <div class=\"col-12 promotions\">\n                            <div class=\"align-self-center\">\n                                \n\n                            </div>\n                        </div>\n                    </div>\n                </section>\n\n                \n                    <!-- Options -->\n                    \n                \n            </div>\n        </div>\n    </div>\n\n    \n\n    \n</div>\n<div class=\"modal-footer row align-items-end\">\n    \n\n    <div class=\"hidden-xs-down col availability align-self-end global-availability\" data-ready-to-order=\"true\" data-available=\"true\">\n        <div class=\"row\">\n            \n<div class=\"col-4\">\n    <span class=\"availability non-input-label\">\n        Availability:\n    </span>\n</div>\n<div class=\"col-8\">\n    <ul class=\"list-unstyled availability-msg\">\n        <li>\n            \n                \n                    <div>In Stock</div>\n                \n            \n        </li>\n    </ul>\n</div>\n\n\n        </div>\n    </div>\n\n    <div class=\"col\">\n        <div class=\"row align-items-end\">\n            <!-- Quantity -->\n            <div class=\"hidden-xs-down col-4\">\n                \n                    \n<label for=\"quantity-1\">Quantity</label>\n<select class=\"quantity-select custom-select form-control\" id=\"quantity-1\">\n    \n        <option value=\"1\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=1\"\n                selected\n        >\n            1\n        </option>\n    \n        <option value=\"2\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=2\"\n                \n        >\n            2\n        </option>\n    \n        <option value=\"3\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=3\"\n                \n        >\n            3\n        </option>\n    \n        <option value=\"4\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=4\"\n                \n        >\n            4\n        </option>\n    \n        <option value=\"5\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=5\"\n                \n        >\n            5\n        </option>\n    \n        <option value=\"6\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=6\"\n                \n        >\n            6\n        </option>\n    \n        <option value=\"7\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=7\"\n                \n        >\n            7\n        </option>\n    \n        <option value=\"8\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=8\"\n                \n        >\n            8\n        </option>\n    \n        <option value=\"9\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=9\"\n                \n        >\n            9\n        </option>\n    \n        <option value=\"10\"\n                data-url=\"/on/demandware.store/Sites-eMEGA-Site/default/Product-Variation?pid=B0DQPQ3RKQ&amp;quantity=10\"\n                \n        >\n            10\n        </option>\n    \n</select>\n\n                \n            </div>\n\n            <div class=\"col-8 mx-auto\">\n                <!-- Prices -->\n                <div class=\"prices\">\n                    \n                    \n\n    <div class=\"price\">\n        \n        \n<span>\n    \n\n    \n\n    \n    <span class=\"sales\">\n        \n        \n        \n            <span class=\"value\" content=\"58.80\"></span>\n        \n        A$58.80\n\n\n    </span>\n</span>\n\n    </div>\n\n\n                </div>\n\n                <!-- Cart and [Optionally] Apple Pay -->\n                \n                    \n<div class=\"row cart-and-ipay\">\n    <div class=\"col-sm-12\">\n        <input type=\"hidden\" class=\"add-to-cart-url\" value=\"/on/demandware.store/Sites-eMEGA-Site/default/Cart-AddProduct\">\n        <button class=\"add-to-cart-global btn btn-primary\"\n                data-pid=\"B0DQPQ3RKQ\"\n                >\n            <i class=\"fa fa-shopping-bag\"></i>\n            \n                Add to Cart\n            \n        </button>\n    </div>\n</div>\n\n                \n            </div>\n        </div>\n    </div>\n</div>\n",
  "productUrl": "/eMEGA/B0DQPQ3RKQ.html"
}