• Урок 1. 00:01:32
    Welcome to the Course
  • Урок 2. 00:02:55
    What Is TypeScript?
  • Урок 3. 00:05:33
    Why Would You Use TypeScript?
  • Урок 4. 00:06:19
    Compiling TypeScript To JavaScript
  • Урок 5. 00:02:12
    Editor & Project Setup
  • Урок 6. 00:01:41
    About The Course
  • Урок 7. 00:03:30
    How To Get The Most Out Of This Course
  • Урок 8. 00:01:13
    Module Introduction
  • Урок 9. 00:02:57
    Project Setup
  • Урок 10. 00:04:45
    Working with Types & Exploring Built-in Types
  • Урок 11. 00:02:54
    Vanilla JavaScript Has Types, Too!
  • Урок 12. 00:03:00
    Type Inference vs Type Assignment
  • Урок 13. 00:02:46
    Assigning Types To Function Parameters
  • Урок 14. 00:03:03
    The "any" Type
  • Урок 15. 00:02:03
    Understanding Union Types
  • Урок 16. 00:02:29
    Arrays & Types
  • Урок 17. 00:01:57
    Advanced Array Types
  • Урок 18. 00:01:47
    A First Glimpse At Generic Types - Alternative Array Type Declaration
  • Урок 19. 00:03:16
    Making Sense of Tuples
  • Урок 20. 00:04:49
    Object Types
  • Урок 21. 00:02:26
    Tricky: The "Must Not Be Null" Type
  • Урок 22. 00:04:56
    Flexible Objects with the Record Type
  • Урок 23. 00:06:40
    Working with Enums
  • Урок 24. 00:05:05
    Being Specific With Literal Types
  • Урок 25. 00:04:14
    Type Aliases & Custom Types
  • Урок 26. 00:03:05
    Function Return Value Types
  • Урок 27. 00:01:29
    The "void" Type
  • Урок 28. 00:03:17
    The "never" Type
  • Урок 29. 00:08:37
    Functions As Types
  • Урок 30. 00:02:41
    null & undefined - Special Types
  • Урок 31. 00:03:30
    Inferred null & A First Look At Type Narrowing
  • Урок 32. 00:05:21
    Forced "Not Null" And Optional Chaining
  • Урок 33. 00:04:27
    Type Casting
  • Урок 34. 00:05:23
    The "unknown" Type
  • Урок 35. 00:02:42
    Optional Values & TypeScript
  • Урок 36. 00:05:37
    Nullish Coalescing
  • Урок 37. 00:01:27
    Module Introduction
  • Урок 38. 00:02:47
    TypeScript Project Setup & Creating a tsconfig.json File
  • Урок 39. 00:05:32
    Exploring tsconfig Options: Target & Libs
  • Урок 40. 00:05:17
    Controlling File Input & Emission
  • Урок 41. 00:03:17
    Configuring Type Checking
  • Урок 42. 00:01:29
    Compiling with tsconfig
  • Урок 43. 00:01:02
    Using TypeScript's Watch Mode
  • Урок 44. 00:05:37
    Installing Type Packages
  • Урок 45. 00:01:25
    Module Introduction
  • Урок 46. 00:04:43
    Getting Started & First Steps
  • Урок 47. 00:04:04
    Creating a First Custom Type
  • Урок 48. 00:03:34
    Defining a Function with a Union Type Return Value
  • Урок 49. 00:09:58
    Adding Application Logic
  • Урок 50. 00:03:53
    Connecting Functions & Passing Values
  • Урок 51. 00:03:34
    Compilation & Execution
  • Урок 52. 00:03:40
    Module Introduction
  • Урок 53. 00:06:36
    "let" and "const"
  • Урок 54. 00:04:51
    Arrow Functions
  • Урок 55. 00:02:10
    Default Function Parameters
  • Урок 56. 00:04:33
    The Spread Operator (...)
  • Урок 57. 00:05:05
    Rest Parameters
  • Урок 58. 00:05:18
    Array & Object Destructuring
  • Урок 59. 00:01:38
    How Code Gets Compiled & Wrap Up
  • Урок 60. 00:01:03
    Module Introduction
  • Урок 61. 00:01:24
    What are Classes?
  • Урок 62. 00:06:05
    Creating a First Class
  • Урок 63. 00:05:19
    A Useful TypeScript Shortcut & Compiling to JavaScript
  • Урок 64. 00:05:48
    Making Sense of "public" and "private"
  • Урок 65. 00:01:54
    Marking Fields as "readonly"
  • Урок 66. 00:03:32
    Understanding Getters
  • Урок 67. 00:05:07
    Setting Values with Setters
  • Урок 68. 00:02:31
    Exploring Static Properties & Methods
  • Урок 69. 00:03:24
    Understanding Inheritance
  • Урок 70. 00:02:34
    The "protected" Modifier
  • Урок 71. 00:04:26
    Making Sense Of Abstract Classes
  • Урок 72. 00:01:39
    Introducing Interfaces
  • Урок 73. 00:03:58
    Creating a First Interface
  • Урок 74. 00:01:44
    Interfaces As Object Types
  • Урок 75. 00:04:04
    Interfaces vs Type Aliases & Understanding Declaration Merging
  • Урок 76. 00:03:11
    Implementing Interfaces
  • Урок 77. 00:01:53
    Ensuring Base Types with Interfaces
  • Урок 78. 00:01:55
    Extending Interfaces
  • Урок 79. 00:01:01
    How Interfaces Get (Not) Compiled To JavaScript
  • Урок 80. 00:00:49
    Module Introduction
  • Урок 81. 00:04:37
    Introducing Intersection Types
  • Урок 82. 00:05:31
    Revisiting Type Guards
  • Урок 83. 00:04:34
    Exploring Discriminated Unions
  • Урок 84. 00:02:38
    Guards with "instanceof"
  • Урок 85. 00:03:15
    "Outsourcing" Type Guards & Working with Type Predicates
  • Урок 86. 00:04:40
    The Case For Function Overloads
  • Урок 87. 00:02:32
    Using Function Overloads
  • Урок 88. 00:05:03
    Working with Index Types
  • Урок 89. 00:02:53
    Constant Types with "as const"
  • Урок 90. 00:01:46
    Revisiting the Record Type
  • Урок 91. 00:07:50
    The "satisfies" Keyword
  • Урок 92. 00:00:50
    Module Introduction
  • Урок 93. 00:01:57
    A Generic Type We Already Know
  • Урок 94. 00:02:02
    Understanding Generic Types
  • Урок 95. 00:06:17
    Creating & Using a Generic Type
  • Урок 96. 00:05:10
    Generic Functions & Inference
  • Урок 97. 00:02:01
    Working with Multiple Generic Parameters
  • Урок 98. 00:04:04
    Generics & Constraints
  • Урок 99. 00:02:43
    Constraints & Multiple Generic Types
  • Урок 100. 00:02:07
    Working with Generic Classes & Interfaces
  • Урок 101. 00:01:04
    Summary
  • Урок 102. 00:00:50
    Module Introduction
  • Урок 103. 00:01:36
    What Is A Linked List?
  • Урок 104. 00:04:50
    Creating List & Node Classes
  • Урок 105. 00:03:12
    Making the Class Generic
  • Урок 106. 00:06:46
    Adding an "add" Method
  • Урок 107. 00:03:08
    Adding Items More Efficiently
  • Урок 108. 00:04:00
    Accessing the Data & Compiling + Running the Code
  • Урок 109. 00:01:55
    Finishing the Linked List
  • Урок 110. 00:00:49
    Module Introduction
  • Урок 111. 00:04:48
    Using "typeof"
  • Урок 112. 00:04:07
    "typeof" & A More Useful Example
  • Урок 113. 00:02:23
    Extracting Keys with "keyof"
  • Урок 114. 00:06:27
    "keyof" & A More Useful Example
  • Урок 115. 00:04:36
    Understanding Indexed Access Types
  • Урок 116. 00:03:55
    Accessing Array Elements with Indexed Access Types
  • Урок 117. 00:07:53
    Introducing Mapped Types
  • Урок 118. 00:07:23
    Readonly Types & Optional Mapping
  • Урок 119. 00:10:14
    Exploring Template Literal Types
  • Урок 120. 00:09:27
    Introducing Conditional Types
  • Урок 121. 00:06:05
    Conditional Types - Another Example
  • Урок 122. 00:07:29
    Making Sense of the "infer" Keyword
  • Урок 123. 00:02:58
    TypeScript's Got You Covered: Built-in Utility Types
  • Урок 124. 00:00:52
    Module Introduction
  • Урок 125. 00:07:10
    What Are Decorators? And ECMAScript Decorators vs Experimental Decorators
  • Урок 126. 00:01:18
    Exploring Different Types of Decorators
  • Урок 127. 00:08:10
    Building a First Decorator
  • Урок 128. 00:05:26
    Building a Class Decorators That Edits a Class
  • Урок 129. 00:03:08
    Understanding Decorator Code Execution Order
  • Урок 130. 00:04:18
    Creating a Method Decorator
  • Урок 131. 00:04:10
    Using Decorators To Solve A Common Problem
  • Урок 132. 00:03:45
    Implementing A Decorator-based Solution: autobind
  • Урок 133. 00:03:39
    Replacing Methods with Decorators
  • Урок 134. 00:04:44
    Introducing the Field Decorator
  • Урок 135. 00:04:02
    Building Configurable Decorators with Factories
  • Урок 136. 00:00:41
    Onwards to Experimental Decorators
  • Урок 137. 00:01:56
    Module Introduction
  • Урок 138. 00:05:22
    A First Class Decorator
  • Урок 139. 00:02:03
    Working with Decorator Factories
  • Урок 140. 00:06:00
    Building More Useful Decorators
  • Урок 141. 00:02:53
    Adding Multiple Decorators
  • Урок 142. 00:05:01
    Diving into Property Decorators
  • Урок 143. 00:05:37
    Accessor & Parameter Decorators
  • Урок 144. 00:03:12
    When Do Decorators Execute?
  • Урок 145. 00:08:38
    Returning (and changing) a Class in a Class Decorator
  • Урок 146. 00:03:45
    Other Decorator Return Types
  • Урок 147. 00:09:05
    Example: Creating an "Autobind" Decorator
  • Урок 148. 00:07:29
    Validation with Decorators - First Steps
  • Урок 149. 00:12:15
    Validation with Decorators - Finished
  • Урок 150. 00:03:22
    Wrap Up
  • Урок 151. 00:01:33
    Module Introduction
  • Урок 152. 00:05:21
    Getting Started
  • Урок 153. 00:11:44
    DOM Element Selection & OOP Rendering
  • Урок 154. 00:08:04
    Interacting with DOM Elements
  • Урок 155. 00:04:45
    Creating & Using an "Autobind" Decorator
  • Урок 156. 00:09:15
    Fetching User Input
  • Урок 157. 00:14:11
    Creating a Re-Usable Validation Functionality
  • Урок 158. 00:11:19
    Rendering Project Lists
  • Урок 159. 00:15:33
    Managing Application State with Singletons
  • Урок 160. 00:07:12
    More Classes & Custom Types
  • Урок 161. 00:06:00
    Filtering Projects with Enums
  • Урок 162. 00:18:41
    Adding Inheritance & Generics
  • Урок 163. 00:11:59
    Rendering Project Items with a Class
  • Урок 164. 00:03:34
    Using a Getter
  • Урок 165. 00:10:25
    Utilizing Interfaces to Implement Drag & Drop
  • Урок 166. 00:05:59
    Drag Events & Reflecting the Current State in the UI
  • Урок 167. 00:08:09
    Adding a Droppable Area
  • Урок 168. 00:06:45
    Finishing Drag & Drop
  • Урок 169. 00:01:23
    Wrap Up
  • Урок 170. 00:01:25
    Module Introduction
  • Урок 171. 00:02:35
    Writing Module Code - Your Options
  • Урок 172. 00:10:51
    Working with Namespaces
  • Урок 173. 00:08:42
    Organizing Files & Folders
  • Урок 174. 00:02:53
    A Problem with Namespace Imports
  • Урок 175. 00:12:21
    Using ES Modules
  • Урок 176. 00:04:58
    Understanding various Import & Export Syntaxes
  • Урок 177. 00:01:44
    How Does Code In Modules Execute?
  • Урок 178. 00:02:17
    Understanding "type" Imports
  • Урок 179. 00:03:15
    Wrap Up
  • Урок 180. 00:01:15
    Module Introduction
  • Урок 181. 00:03:36
    The Problem With The TypeScript Compiler
  • Урок 182. 00:04:14
    Building with Webpack or ESBuild
  • Урок 183. 00:02:26
    Introducing Vite
  • Урок 184. 00:07:22
    Using Vite
  • Урок 185. 00:01:50
    Installing TypeScript on a Per-Project Basis
  • Урок 186. 00:02:34
    Making Sense of .d.ts Files
  • Урок 187. 00:01:57
    Importing non-TS Files
  • Урок 188. 00:00:47
    Wrap Up
  • Урок 189. 00:01:02
    Module Introduction
  • Урок 190. 00:05:33
    What is Webpack & Why do we need it?
  • Урок 191. 00:03:56
    Installing Webpack & Important Dependencies
  • Урок 192. 00:05:58
    Adding Entry & Output Configuration
  • Урок 193. 00:07:01
    Adding TypeScript Support with the ts-loader Package
  • Урок 194. 00:03:34
    Finishing the Setup & Adding webpack-dev-server
  • Урок 195. 00:04:05
    Adding a Production Workflow
  • Урок 196. 00:01:42
    Wrap Up
  • Урок 197. 00:01:10
    Module Introduction
  • Урок 198. 00:03:44
    Facing Problems with JS Libraries in TS Projects
  • Урок 199. 00:04:41
    Bridging the Gap with @types Packages
  • Урок 200. 00:06:44
    Exploring .d.ts Files
  • Урок 201. 00:02:22
    There Are Libraries With Great TypeScript Support!
  • Урок 202. 00:08:03
    Exploring Zod as a TypeScript-first Library
  • Урок 203. 00:04:26
    Defining a More Complex Zod Schema
  • Урок 204. 00:04:17
    Runtime vs Compile-time Types with Zod
  • Урок 205. 00:00:42
    Module Introduction
  • Урок 206. 00:03:57
    Project Setup
  • Урок 207. 00:02:42
    Getting User Input
  • Урок 208. 00:02:49
    Setting Up a Google API Key
  • Урок 209. 00:10:15
    Using Axios to Fetch Coordinates for an Entered Address
  • Урок 210. 00:06:36
    Rendering a Map with Google Maps (incl. Types!)
  • Урок 211. 00:01:23
    Module Introduction
  • Урок 212. 00:04:09
    Creating a React + TypeScript Project
  • Урок 213. 00:05:48
    Typing Components & Props
  • Урок 214. 00:02:48
    Using Components & Props
  • Урок 215. 00:03:02
    TypeScript, The Special "children" Prop & Optional Props
  • Урок 216. 00:04:04
    Adding Another Component With Props
  • Урок 217. 00:02:31
    An Alternative Component Function Type Syntax
  • Урок 218. 00:02:06
    Working with State & TypeScript
  • Урок 219. 00:05:16
    Passing Functions As Props
  • Урок 220. 00:04:44
    Handling Form Submission
  • Урок 221. 00:05:41
    Using Refs with TypeScript
  • Урок 222. 00:04:06
    More Function Passing & State Updating
  • Урок 223. 00:01:07
    Wrap Up
  • Урок 224. 00:00:56
    Module Introduction
  • Урок 225. 00:03:53
    Node + TypeScript - You Have Multiple Options
  • Урок 226. 00:07:24
    Project Setup & Configuration
  • Урок 227. 00:03:29
    Adding Node.js Types & Running a Basic Server
  • Урок 228. 00:03:28
    Adding & Using Express.js (and its Types)
  • Урок 229. 00:08:29
    Managing Data With Help Of TypeScript
  • Урок 230. 00:09:39
    Adding & Testing a First Route (with Data Extraction)
  • Урок 231. 00:11:40
    Finishing the Basic App
  • Урок 232. 00:07:29
    Native Node.js TypeScript Support Without Compilation (incl. tsconfig Setup)
  • Урок 233. 00:09:02
    Type Stripping vs Type Transformation
  • Урок 234. 00:01:45
    Considering Alternative Runtimes
  • Урок 235. 00:01:16
    Roundup & Next Steps