← All CoursesStart Learning — Chapter 1.1 →
TypeScript Course · Free · Beginner → Advanced
TypeScript Hyderabad Style
Oka Free Course
Learn TypeScript — put a helmet on JS, catch errors at compile time.
61 chapters + 3 real projects. Generics, Type Guards, Zod — Hyderabadi style.
61Chapters
3Projects
10Stages
FreeForever
Stage 1
Irani Chai Level
Basics — Getting Started○1.1
What is TypeScript & Why It ExistsPutting a helmet on JS — how the compiler saves you in production
12 min→○1.2Setup & First TS FileInstall tsc, run with ts-node, compile .ts to .js
15 min→○1.3Primitive Types — string, number, booleanLike salt in biryani, primitives in TS — nothing builds without them
12 min→○1.4Type Inference — TS is SmartDon't need to write types everywhere — TS understands on its own
14 min→○1.5Any & Unknown — The Dangerous RoadsAny means back to JS, Unknown means safe danger — when to use what
16 min→○1.6Arrays & Tuples — Thali & Fixed MenuArrays same elements, Tuples fixed positions — exactly two items
14 min→TS Chai DevTypeScript foundation solid! Compiler understood, type errors no longer scare you!
Stage 2
Biryani Box Level
Objects & Functions — Shape of Data○2.1
Typing Function Parameters & ReturnsWhat input a function needs and what output it gives — explicit return types
14 min→○2.2Optional & Default ParametersArguments not required, and if not provided, what default to take
12 min→○2.3Rest Parameters...args packs remaining items into an array
12 min→○2.4Objects as Types (Inline)Define object shape directly — excess property checking
14 min→○2.5Type Aliases — Naming your ShapesNo need to write shape everywhere — type User = {...} write once
14 min→○2.6void & nevervoid means work done, never means work never ends
12 min→TS Biryani Box DevData shape defined! Objects and functions are now type-safe!
Stage 3
Mix & Match
Unions & Intersections🔒3.1
Union Types — This OR Thatstring | number — ID is either string or number, learn narrowing
Login to unlock14 min→🔒3.2Literal Types — Exact WordsType can only be "Hyderabadi" or "Irani" — anything else gives error
Login to unlock12 min→🔒3.3Intersection Types — This AND ThatCombine two types — User & Employee — need properties of both
Login to unlock14 min→🔒3.4Enums — Named ConstantsFixed values like Color or Direction — numeric vs string enums
Login to unlock14 min→🔒3.5Discriminated Unions — The Secret TagOne common property tells TS exactly which case in the union
Login to unlock16 min→Mix Match MasterEither this or that — Unions & Intersections make data flexible AND safe!
Stage 4
Interfaces & Classes
Interfaces & Classes — Architecture🔒4.1
Interfaces vs Type AliasesWhat's the difference? When to use interface vs type?
Login to unlock14 min→🔒4.2Extending InterfacesInheritance — create Dog interface from basic Animal interface
Login to unlock12 min→🔒4.3Classes & Access Modifierspublic, private, protected — what data should be visible, what should be secret
Login to unlock16 min→🔒4.4Implementing InterfacesForce a class to "you must create these methods" — signing a contract
Login to unlock14 min→🔒4.5Abstract ClassesHalf-built class — cannot be used directly, only extended
Login to unlock14 min→🔒4.6Index Signatures — Dynamic Keys{[key: string]: number} — when keys are unknown but value types are known
Login to unlock12 min→Nizam ArchitectClasses and Interfaces for solid architecture — private, protected, public all clear!
Stage 5
Generics Level
Generics — Reusable Code🔒5.1
What are Generics?Type variables (<T>) — write one function, use with 5 types, avoid any
Login to unlock14 min→🔒5.2Generic Functionsfunction identity<T>(val: T): T — whatever input, same type output
Login to unlock16 min→🔒5.3Generic Interfaces & ClassesHow ApiResponse<T> works — building custom generic classes
Login to unlock14 min→🔒5.4Constraining Generics (extends)T can't be anything — T extends HasId, T must be User-like shape
Login to unlock16 min→🔒5.5Default Type Parameters<T = string> — if no type given, default to string
Login to unlock12 min→🔒5.6keyof and Genericskeyof T means object keys — only valid keys can be passed
Login to unlock16 min→Generic ChefBiryani Pot concept understood! One function, 5 types — Generics mastered!
Stage 6
Type Guards Level
Type Guards & Narrowing🔒6.1
typeof & instanceofBasic checking — typeof x === "string" and instanceof class check
Login to unlock12 min→🔒6.2Truthiness & Equality Narrowingif (value) removes null and undefined — == null trick
Login to unlock12 min→🔒6.3Custom Type Guards (Type Predicates)function isFish(pet): pet is Fish — guarantee TS this is definitely Fish
Login to unlock16 min→🔒6.4Assertion Functions (asserts)If false, throw error; otherwise proceed — asserting
Login to unlock14 min→🔒6.5The in Operator NarrowingCheck with "swim" in pet — Villa vs Apartment logic
Login to unlock12 min→🔒6.6Exhaustiveness Check (never)If a case remains in switch, TS gives error — roll call
Login to unlock14 min→Type Guard ProRTA checkpost cleared! Unknown data can now be safely checked and used!
Stage 7
Utility Types Level
Utility Types & Mapped Types🔒7.1
Partial & RequiredPartial makes everything optional, Required makes everything mandatory — for update functions
Login to unlock12 min→🔒7.2Pick & OmitPick only 2 keys, Omit skip one key get all — for DTOs
Login to unlock12 min→🔒7.3RecordRecord<K, V> — dictionary shortcut, better than index signatures
Login to unlock10 min→🔒7.4ReadonlySet value once, can't change — no tampering
Login to unlock12 min→🔒7.5Conditional TypesT extends U ? X : Y — IF/ELSE in Types — traffic signal
Login to unlock18 min→🔒7.6infer KeywordExtract type from inside types — detective magnifying glass
Login to unlock16 min→🔒7.7Template Literal Types`${Type1}-${Type2}` — Mad Libs for developers, CSS types
Login to unlock14 min→Utility MasterTypeScript built-in tools — no more code duplication! Partial, Pick, Omit, Record all clear!
Stage 8
Config Level
tsconfig & Declarations🔒8.1
tsconfig.json Essentialstarget, module, strict — tell the compiler how to behave
Login to unlock14 min→🔒8.2Strict Mode Deep DivestrictNullChecks is the biggest lifesaver — turn off implicit any
Login to unlock16 min→🔒8.3Ambient Types & .d.ts filesGhost whisperers — show JS world things to TS using declare keyword
Login to unlock14 min→🔒8.4Third-party types (@types/...)DefinitelyTyped makes JS libraries understandable to TS
Login to unlock12 min→🔒8.5Namespace vs ModulesOld open office vs New private cabins — always use ES Modules
Login to unlock12 min→Config ExpertNizam's constitution understood! tsconfig and declarations to rule the kingdom!
Stage 9
Async Level
Async TS & DOM🔒9.1
Typing PromisesPromise<T> — Chai token guarantees you'll get Chai, not Biryani
Login to unlock12 min→🔒9.2Async/Await in TSAwait unwraps Promise<User> into User — conveyor belt logic
Login to unlock14 min→🔒9.3Typing DOM ElementsgetElementById returns HTMLElement — cast to access .value
Login to unlock16 min→🔒9.4Event TypingMouseEvent, KeyboardEvent — choose the right CCTV lens
Login to unlock12 min→🔒9.5Fetch API Typingresponse.json() returns any — type it explicitly, don't trust the API
Login to unlock16 min→🔒9.6Try/Catch Error Typingcatch (error: unknown) — diagnose first like a hospital emergency room
Login to unlock14 min→Async TS DevAPIs and DOM now safe! Promises, Events and Fetch made type-safe!
Stage 10
Real World Level
Real World — Expert🔒10.1
TS with React (Props & State)React.FC, useState generics, ChangeEvent — component quality check
Login to unlock18 min→🔒10.2TS with Node.js (Express)Request<{}, {}, BodyType> — palace gate security for APIs
Login to unlock16 min→🔒10.3Zod & Runtime Validationz.infer<typeof Schema> — X-ray machine for API data, single source of truth
Login to unlock20 min→🔒10.4Builder Pattern in TSreturn this — step by step biryani order pattern, fluent chaining
Login to unlock14 min→🔒10.5Branded Types (Nominal Typing)UserId vs OrderId — invisible currency stamps, structural typing workaround
Login to unlock16 min→🔒10.6Declaration MergingExtending third-party library types without touching source code
Login to unlock12 min→🔒10.7Debugging TS ErrorsRead bottom line first — @ts-expect-error vs @ts-ignore, peeling the onion
Login to unlock14 min→🔒10.8TS Project ArchitectureBarrel exports, feature folders, DDD — city planning of Hyderabad
Login to unlock16 min→TS NinjaComplete TypeScript course! React, Node, Zod — now writing production-ready code!
Generics — The Biryani Pot
TypeScript ka sabse powerful feature — Generics. Biryani pot jaisa — pot ek hai, filling alag alag. Reusable code likho without losing type safety bhai.
Type Guards — RTA Checkpost
Runtime pe data anjaan aata hai — TS ko pata nahi hota. Type Guards lagao, ID check karo, phir andar jaane do. Narrowing karna seekho ekdum expert level pe.
Real World — React, Node, Zod
Sirf syntax nahi — React components type karo, Express APIs safe banao, aur Zod se runtime validation seekho. Production ready code likhna bhai.