Learn TypeScript
A free, interactive TypeScript course built on top of JavaScript. You write TS on every lesson - type annotations, interfaces, generics, unions, narrowing - with AI hints when you get stuck and a certificate when you finish. Part of the wider JavaScript journey, so the JS context that makes TypeScript click is right there.
253,075+ codders enrolled
- Beginner friendly
AI-assisted coding help
Hands-on interactive lessons
Audio narration on every lesson
Quizzes to test your knowledge
Free certificate of completion
Syllabus
This section is part of the JavaScript Journey. The full syllabus has more sections - click any preview below to view it on the Journey page.
- Section 1Fundamentals77 lessons
- Section 2Logic & Flow65 lessons
Section 1
Introduction To TypeScript
Start sectionStartExpandCollapseIntroduction to typescript after learned about javascriptGetting Started with TS
5 lessons232- 01What is TypeScript?Quiz
- 02Why Use TypeScript?Quiz
- 03Your First TypeScript CodeChallengeQuiz
- 04Compilation Process & ErrorsQuiz
- 05Recap: Introduction to TSChallenge
Core Types
7 lessons748- 01Basic Types: str, num, booleanChallengeQuiz
- 02The 'any' Type: Escape HatchChallengeQuiz
- 03The 'unknown' TypeChallengeQuiz
- 04Working with 'null' & 'undef'ChallengeQuiz
- 05Type Inference in ActionChallengeQuiz
- 06Explicit Type AnnotationsChallengeQuiz
- 07Recap: Core Types PracticeChallenge
Data Structure: Arrays & Tuple
9 lessons862- 01Typed ArraysChallengeQuiz
- 02'readonly' Modifier for ArraysChallengeQuiz
- 03What is a Tuple?Quiz
- 04Declaring and Accessing TuplesChallengeQuiz
- 05Destructuring TuplesChallengeQuiz
- 06Readonly TuplesChallengeQuiz
- 07Multi-dimensional Typed ArraysChallengeQuiz
- 08 Spread Operator with ArraysChallengeQuiz
- 09Recap: Arrays and TuplesChallenge
Working with Functions
8 lessons855- 01Typing Params & Return ValuesChallengeQuiz
- 02Typing Arrow FunctionsChallengeQuiz
- 03The 'void' Return TypeChallengeQuiz
- 04Optional Parameters with '?'ChallengeQuiz
- 05Default Parameter ValuesChallengeQuiz
- 06Typing Rest ParametersChallengeQuiz
- 07Defining Function TypesChallengeQuiz
- 08Recap: Building Typed FuncsChallenge
Types: Aliases, Unions & Inter
7 lessons751- 01Type Aliases for PrimitivesChallengeQuiz
- 02Union Types ('|')ChallengeQuiz
- 03Working with Union TypesChallengeQuiz
- 04Literal TypesChallengeQuiz
- 05Intersection Types ('&')ChallengeQuiz
- 06Combining Type AliasesChallengeQuiz
- 07Recap: Advanced Type CombosChallenge
Typing Objects and Interfaces
8 lessons757- 01Inline Object Type AnnotationsChallengeQuiz
- 02Type Aliases for ObjectsChallengeQuiz
- 03Introduction to InterfacesChallengeQuiz
- 04Interfaces vs. Type AliasesQuiz
- 05Optional & Readonly PropsChallengeQuiz
- 06Extending Interfaces and TypesChallengeQuiz
- 07Adding Methods to InterfacesChallengeQuiz
- 08Recap: Defining Object ShapesChallenge
Project: A Simple Task List
Project6 lessons18- 01Project: Defining Task StructChallengeQuiz
- 02Function to Add a TaskProject
- 03Function to Change Task StatusProject
- 04Function: List Tasks by StatusProject
- 05Function: Print Task SummaryProject
- 06Putting It All TogetherProject
Enums
6 lessons638- 01What is a Numeric Enum?ChallengeQuiz
- 02Using Numeric EnumsChallengeQuiz
- 03What is a String Enum?ChallengeQuiz
- 04Using String EnumsChallengeQuiz
- 05Heterogeneous EnumsChallengeQuiz
- 06Recap: Using EnumsChallenge
Generics: A First Look
6 lessons537- 01The Problem Generics SolveQuiz
- 02Creating Generic Identity FuncChallengeQuiz
- 03Using a Generic FunctionChallengeQuiz
- 04Generic ArraysChallengeQuiz
- 05Generic InterfacesChallengeQuiz
- 06Recap: Generic Function PracChallenge
Project: Inventory Management
Project5 lessons18- 01Project: Generic Inventory IteChallengeQuiz
- 02Function: Add Items to InvProject
- 03Function to Find an Item by IDProject
- 04Create Specific Inventory TypeProject
- 05Function to Get Item DetailsProject
Advanced Topics
6 lessons642- 01Type AssertionsChallengeQuiz
- 02 Type Guards: in & instanceofChallengeQuiz
- 03The 'never' TypeChallengeQuiz
- 04Nullable Types ('strictNull')ChallengeQuiz
- 05Index Signatures for ObjectsChallengeQuiz
- 06Recap: Fine-Tuning TypesChallenge
- Section 4Object Oriented Programming56 lessons
Why learn TypeScript with Coddy
- Write TypeScript in your browser. No
tscinstall, no editor setup, notsconfig.jsonto wrangle. The editor and output sit side-by-side so you see what each type does instantly. - Modern TypeScript: type annotations, interfaces, generics, union and intersection types, narrowing, utility types, and how TS layers on top of plain JavaScript without changing what runs at runtime.
- AI hints help you read TypeScript errors - the famously long ones - without spoiling the fix, so you build the mental model that makes future TS code easier to write.
- Free TypeScript certificate when you finish the section. A credible signal that you can read and write idiomatic TS, not just JavaScript with sprinkled types.
Frequently asked questions about learning TypeScript
What is TypeScript?
TypeScript is a superset of JavaScript that adds optional static typing. Valid JavaScript is valid TypeScript, but TS lets you annotate variables, function parameters, and return values with types - the compiler then catches mistakes before your code runs. At runtime, TypeScript compiles down to plain JavaScript.
Is TypeScript hard to learn?
If you're comfortable with JavaScript, the basics of TypeScript are quick to pick up - adding
: string or : number to a few variables and you're already writing TS. The trickier parts (generics, conditional types, mapped types, narrowing) take longer, and this course introduces them in small steps with hands-on examples.Do I need to know JavaScript before TypeScript?
Yes. TypeScript is JavaScript with types on top, so the language you're really learning is JS. This TypeScript section is part of the JavaScript journey for that reason - you can take the JS sections first, or jump straight to TS if you're already comfortable with modern JavaScript.
What's the difference between TypeScript and JavaScript?
JavaScript is dynamically typed - a variable can hold a string today and a number tomorrow, and you only find out at runtime. TypeScript adds a static type layer that runs at build time, catching type mismatches before the code ships. The compiled output is still plain JavaScript, so it runs anywhere JS does.
Can I learn TypeScript online for free?
Yes. The interactive TypeScript section is free - full lessons, coding exercises, quizzes, and a certificate. The editor runs in your browser with the TS compiler built in, so you don't need to install
tsc, Node, or any tooling to start writing TypeScript.Do I get a certificate after the TypeScript course?
Yes. Finishing the TypeScript section gives you a free certificate of completion you can share on LinkedIn or include on your resume. A verifiable signal that you've worked through structured, hands-on TypeScript material, not just watched tutorials.