{"id":15110321,"url":"https://github.com/chrisco/ts2","last_synced_at":"2026-01-19T21:34:03.435Z","repository":{"id":227972030,"uuid":"99501295","full_name":"chrisco/ts2","owner":"chrisco","description":"Learning and practicing TypeScript 2.0","archived":false,"fork":false,"pushed_at":"2017-08-28T13:37:01.000Z","size":34,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-05T16:48:27.343Z","etag":null,"topics":["typescript","typescript2"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-08-06T17:07:24.000Z","updated_at":"2017-08-18T10:18:58.000Z","dependencies_parsed_at":"2024-03-22T10:50:14.978Z","dependency_job_id":null,"html_url":"https://github.com/chrisco/ts2","commit_stats":null,"previous_names":["chrisco/ts2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chrisco/ts2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisco%2Fts2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisco%2Fts2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisco%2Fts2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisco%2Fts2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisco","download_url":"https://codeload.github.com/chrisco/ts2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisco%2Fts2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28585524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T20:45:59.482Z","status":"ssl_error","status_checked_at":"2026-01-19T20:45:41.500Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["typescript","typescript2"],"created_at":"2024-09-25T23:44:17.902Z","updated_at":"2026-01-19T21:34:03.421Z","avatar_url":"https://github.com/chrisco.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TypeScript Tutorial\n\n### 1 Getting Started\n\n1. [Introduction](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5704422?start=0)\n2. [What is TypeScript?](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5704426?start=0)\n3. [Why TypeScript and How to use it?](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5704432?start=0)\n4. [Installing TypeScript](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5704438?start=0)\n5. [Using TypeScript](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5704442?start=0)\n6. [Setting up the Course Workspace](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5704446?start=0)\n7. [Asking Questions \u0026 Course Materials](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5704474?start=0)\n\n### 2: Using Types for a Better Code\n\n8.  [Introduction](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660404?start=0)\n9.  [Type Basics](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660420?start=0)\n10. [Numbers \u0026 Booleans](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660424?start=0)\n11. [Assigning Types Explicitly](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660430?start=0)\n12. [Arrays and Types](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660432?start=0)\n13. [Tuples](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660434?start=0)\n14. [Enums](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660438?start=0)\n15. [The \"Any\" Type](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660442?start=0)\n16. [Understanding the created JavaScript Code](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660446?start=0)\n17. [Using Types in Functions (Arguments \u0026 Return Values)](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660452?start=0)\n18. [Functions as Types](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660456?start=0)\n19. [Objects and Types](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660460?start=0)\n20. [Example: Putting it all together in a Complex Object](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660460?start=0)\n21. [Creating custom Types with Type Aliases](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660472?start=0)\n22. [Allowing multiple Types with Union Types](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660476?start=0)\n23. [Checking for Types during Runtime](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660480?start=0)\n24. [The \"never\" Type (added with TypeScript 2.0)](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5777202?start=0)\n25. [Nullable Types (added with TypeScript 2.0)](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5777204?start=0)\n26. [Module Exercise: Problem](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660488?start=0)\n27. [Module Exercise: Problem Code](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660836?start=0)\n28. [Module Exercise: Solution](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660490?start=0)\n29. [Module Summary](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660492?start=0)\n\n### 3: Understanding the TypeScript Compiler\n\n30. [Introduction](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660508?start=0)\n31. [How Code gets Compiled](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660512?start=0)\n32. [Changing the Compiler Behavior on Errors](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5705004?start=0)\n33. [Debugging your TypeScript Code using Source Maps](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660514?start=0)\n34. [Avoiding implicit \"Any\"](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660516?start=0)\n35. [More Compiler Options](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660518?start=0)\n36. [Compiler Improvements with TypeScript 2.0](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5777206?start=0)\n37. [Resource: Compiler Documentation](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660520?start=0)\n38. [Module Summary](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660522?start=0)\n\n### 4: TypeScript and ES6\n\n39. [Introduction](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660534?start=0)\n40. [ES6 \u0026 TypeScript Compatibility](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660578?start=0) — see [this compatibly table](http://kangax.github.io/compat-table/es6/)\n41. [\"Let\" and \"Const\"](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660536?start=0)\n42. [Block Scope](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660538?start=0)\n43. [Arrow Functions](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660540?start=0)\n44. [Arrow Functions - Variations](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660542?start=0)\n45. [Functions and Default Parameters](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660546?start=0)\n46. [The Spread Operator](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660548?start=0)\n47. [The Rest Operator](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660552?start=0)\n48. [Destructuring Arrays](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660556?start=0)\n49. [Destructuring Objects](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660558?start=0)\n50. [Template Literals](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660562?start=0)\n51. [Other ES6 Features](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660568?start=0)\n52. [Module Exercise: Problem](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660570?start=0)\n53. [Module Exercise: Solution](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660572?start=0)\n54. [Module Summary](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660588?start=0)\n\n### 5: Using Classes to create Objects\n\n55. [Introduction](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660594?start=0)\n56. [Creating Classes and Class Properties](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660598?start=0)\n57. [Class Methods and Access Modifiers](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660602?start=0)\n58. [Inheritance](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660614?start=0)\n59. [Inheritance and Constructors](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660616?start=0)\n60. [Inheritance Wrap Up](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660620?start=0)\n61. [Getters \u0026 Setters](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660628?start=0)\n62. [Static Properties and Methods](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660624?start=0)\n63. [Abstract Classes](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660630?start=0)\n64. [Private Constructors \u0026 Singletons (added with TypeScript 2.0)](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5777208?start=0)\n65. [\"readonly\" Properties (added with TypeScript 2.0)](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5777210?start=0)\n66. [Module Exercise: Problem](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660640?start=0)\n67. [Module Exercise: Solution](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660642?start=0)\n68. [Module Summary](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660646?start=0)\n\n### 6: Namespaces and Modules\n\n69. [Introduction](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660650?start=0)\n70. [An Introduction to Namespaces](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660652?start=0)\n71. [Namespaces and Multiple Files](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660654?start=0)\n72. [Namespace Imports](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660656?start=0)\n73. [More on Namespaces](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660658?start=0)\n74. [Limitations of Namespaces](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5705324?start=0)\n75. [Modules](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660660?start=0)\n76. [Loading Modules](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660662?start=0)\n77. [Importing \u0026 Exporting Modules](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660666?start=0)\n78. [Module Resolution](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660668?start=0)\n79. [Namespaces vs Modules - Wrap Up](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660670?start=0)\n80. [Module Summary](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660672?start=0)\n\n### 7 Doing Contract Work with Interfaces\n\n81. [Introduction](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660674?start=0)\n82. [The Basics About Interfaces](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660680?start=0)\n83. [Interfaces and Properties](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660682?start=0)\n84. [Interfaces and Methods](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660686?start=0)\n85. [Using Interfaces with Classes](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660688?start=0)\n86. [Interfaces and Function Types](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660690?start=0)\n87. [Interface Inheritance](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660692?start=0)\n88. [What happens once Interfaces get Compiled](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660694?start=0)\n89. [Module Summary](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660696?start=0)\n\n### 8: Generics\n\n80. [Introduction](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660698?start=0)\n91. [Why and What?](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660704?start=0)\n92. [Creating a Generic Function](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660708?start=0)\n93. [A built-in Generic Type: Arrays](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660710?start=0)\n94. [Generic Types and Arrays](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660712?start=0)\n95. [Using Generic Types](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660714?start=0)\n96. [Creating a Generic Class](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660716?start=0)\n97. [Constraints](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660722?start=0)\n98. [Using more than one Generic type](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660724?start=0)\n99. [Module Exercise: Problem](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660726?start=0)\n100. [Module Exercise: Solution](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660728?start=0)\n101. [Module Summary](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660730?start=0)\n\n### 9: Behind the Scenes with Decorators\n\n102. [Introduction](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660734?start=0)\n103. [Creating a Class Decorator](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660738?start=0)\n104. [Decorator Factories](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660742?start=0)\n105. [Creating a useful Decorator](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660744?start=0)\n106. [Using Multiple Decorators](https://www.udemy.com/understanding-typescript/learn/v4/t/lecture/5660746?start=0)\n107. [A first Summary]()\n108. [Method Decorators]()\n109. [Property Decorators]()\n110. [Parameter Decorators]()\n111. [Module Summary]()\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisco%2Fts2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisco%2Fts2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisco%2Fts2/lists"}