Skip to main content

index

docs/
└── tutorials/
└── typescript/
β”œβ”€β”€ index.mdx
β”œβ”€β”€ 01-introduction/
β”‚ β”œβ”€β”€ what-is-typescript.mdx
β”‚ β”œβ”€β”€ why-learn-typescript.mdx
β”‚ β”œβ”€β”€ typescript-vs-javascript.mdx
β”‚ β”œβ”€β”€ typescript-features.mdx
β”‚ β”œβ”€β”€ typescript-use-cases.mdx
β”‚ └── how-typescript-works.mdx
β”œβ”€β”€ 02-environment-setup/
β”‚ β”œβ”€β”€ install-nodejs.mdx
β”‚ β”œβ”€β”€ install-typescript.mdx
β”‚ β”œβ”€β”€ install-code-editor.mdx
β”‚ β”œβ”€β”€ typescript-playground.mdx
β”‚ β”œβ”€β”€ ts-node-and-tsx.mdx
β”‚ └── verify-installation.mdx
β”œβ”€β”€ 03-first-typescript-program/
β”‚ β”œβ”€β”€ hello-typescript.mdx
β”‚ β”œβ”€β”€ create-ts-file.mdx
β”‚ β”œβ”€β”€ compile-typescript.mdx
β”‚ β”œβ”€β”€ run-compiled-javascript.mdx
β”‚ β”œβ”€β”€ compiler-errors.mdx
β”‚ └── typescript-project-structure.mdx
β”œβ”€β”€ 04-type-system-fundamentals/
β”‚ β”œβ”€β”€ type-annotations.mdx
β”‚ β”œβ”€β”€ type-inference.mdx
β”‚ β”œβ”€β”€ primitive-types.mdx
β”‚ β”œβ”€β”€ string-number-and-boolean.mdx
β”‚ β”œβ”€β”€ null-and-undefined.mdx
β”‚ β”œβ”€β”€ any-type.mdx
β”‚ β”œβ”€β”€ unknown-type.mdx
β”‚ β”œβ”€β”€ never-type.mdx
β”‚ β”œβ”€β”€ void-type.mdx
β”‚ └── literal-types.mdx
β”œβ”€β”€ 05-arrays-and-tuples/
β”‚ β”œβ”€β”€ array-types.mdx
β”‚ β”œβ”€β”€ readonly-arrays.mdx
β”‚ β”œβ”€β”€ tuple-types.mdx
β”‚ β”œβ”€β”€ named-tuples.mdx
β”‚ β”œβ”€β”€ multidimensional-arrays.mdx
β”‚ └── array-methods-and-types.mdx
β”œβ”€β”€ 06-objects-and-interfaces/
β”‚ β”œβ”€β”€ object-types.mdx
β”‚ β”œβ”€β”€ type-aliases.mdx
β”‚ β”œβ”€β”€ interfaces.mdx
β”‚ β”œβ”€β”€ optional-properties.mdx
β”‚ β”œβ”€β”€ readonly-properties.mdx
β”‚ β”œβ”€β”€ index-signatures.mdx
β”‚ β”œβ”€β”€ excess-property-checks.mdx
β”‚ β”œβ”€β”€ interface-extension.mdx
β”‚ └── type-vs-interface.mdx
β”œβ”€β”€ 07-functions/
β”‚ β”œβ”€β”€ function-types.mdx
β”‚ β”œβ”€β”€ parameter-types.mdx
β”‚ β”œβ”€β”€ return-types.mdx
β”‚ β”œβ”€β”€ optional-and-default-parameters.mdx
β”‚ β”œβ”€β”€ rest-parameters.mdx
β”‚ β”œβ”€β”€ function-overloads.mdx
β”‚ β”œβ”€β”€ callback-types.mdx
β”‚ β”œβ”€β”€ this-parameter.mdx
β”‚ └── arrow-functions.mdx
β”œβ”€β”€ 08-unions-and-narrowing/
β”‚ β”œβ”€β”€ union-types.mdx
β”‚ β”œβ”€β”€ intersection-types.mdx
β”‚ β”œβ”€β”€ type-narrowing.mdx
β”‚ β”œβ”€β”€ typeof-narrowing.mdx
β”‚ β”œβ”€β”€ equality-narrowing.mdx
β”‚ β”œβ”€β”€ in-operator-narrowing.mdx
β”‚ β”œβ”€β”€ discriminated-unions.mdx
β”‚ β”œβ”€β”€ custom-type-guards.mdx
β”‚ └── exhaustiveness-checking.mdx
β”œβ”€β”€ 09-classes-and-oop/
β”‚ β”œβ”€β”€ class-fundamentals.mdx
β”‚ β”œβ”€β”€ constructors-and-properties.mdx
β”‚ β”œβ”€β”€ public-private-and-protected.mdx
β”‚ β”œβ”€β”€ readonly-and-static-members.mdx
β”‚ β”œβ”€β”€ inheritance.mdx
β”‚ β”œβ”€β”€ abstract-classes.mdx
β”‚ β”œβ”€β”€ implements-and-interfaces.mdx
β”‚ β”œβ”€β”€ getters-and-setters.mdx
β”‚ └── parameter-properties.mdx
β”œβ”€β”€ 10-generics/
β”‚ β”œβ”€β”€ generic-fundamentals.mdx
β”‚ β”œβ”€β”€ generic-functions.mdx
β”‚ β”œβ”€β”€ generic-interfaces.mdx
β”‚ β”œβ”€β”€ generic-classes.mdx
β”‚ β”œβ”€β”€ generic-constraints.mdx
β”‚ β”œβ”€β”€ keyof-and-type-parameters.mdx
β”‚ β”œβ”€β”€ generic-defaults.mdx
β”‚ β”œβ”€β”€ generic-inference.mdx
β”‚ └── reusable-generic-utilities.mdx
β”œβ”€β”€ 11-advanced-types/
β”‚ β”œβ”€β”€ conditional-types.mdx
β”‚ β”œβ”€β”€ mapped-types.mdx
β”‚ β”œβ”€β”€ template-literal-types.mdx
β”‚ β”œβ”€β”€ indexed-access-types.mdx
β”‚ β”œβ”€β”€ typeof-and-keyof-operators.mdx
β”‚ β”œβ”€β”€ infer-keyword.mdx
β”‚ β”œβ”€β”€ recursive-types.mdx
β”‚ β”œβ”€β”€ distributive-conditional-types.mdx
β”‚ └── branded-types.mdx
β”œβ”€β”€ 12-utility-types/
β”‚ β”œβ”€β”€ partial-and-required.mdx
β”‚ β”œβ”€β”€ pick-and-omit.mdx
β”‚ β”œβ”€β”€ record-type.mdx
β”‚ β”œβ”€β”€ exclude-and-extract.mdx
β”‚ β”œβ”€β”€ nonnullable.mdx
β”‚ β”œβ”€β”€ parameters-and-returntype.mdx
β”‚ β”œβ”€β”€ readonly-and-awaited.mdx
β”‚ └── custom-utility-types.mdx
β”œβ”€β”€ 13-modules-and-project-organization/
β”‚ β”œβ”€β”€ modules-overview.mdx
β”‚ β”œβ”€β”€ named-exports-and-imports.mdx
β”‚ β”œβ”€β”€ default-exports-and-imports.mdx
β”‚ β”œβ”€β”€ type-only-imports.mdx
β”‚ β”œβ”€β”€ module-resolution.mdx
β”‚ β”œβ”€β”€ path-aliases.mdx
β”‚ β”œβ”€β”€ declaration-files.mdx
β”‚ β”œβ”€β”€ ambient-types.mdx
β”‚ └── project-architecture.mdx
β”œβ”€β”€ 14-compiler-and-configuration/
β”‚ β”œβ”€β”€ tsconfig-introduction.mdx
β”‚ β”œβ”€β”€ strict-mode.mdx
β”‚ β”œβ”€β”€ target-and-module-options.mdx
β”‚ β”œβ”€β”€ module-resolution-options.mdx
β”‚ β”œβ”€β”€ source-map-and-output.mdx
β”‚ β”œβ”€β”€ declaration-generation.mdx
β”‚ β”œβ”€β”€ noemit-and-build-checks.mdx
β”‚ β”œβ”€β”€ project-references.mdx
β”‚ └── incremental-compilation.mdx
β”œβ”€β”€ 15-asynchronous-typescript/
β”‚ β”œβ”€β”€ promises.mdx
β”‚ β”œβ”€β”€ async-and-await.mdx
β”‚ β”œβ”€β”€ typing-promises.mdx
β”‚ β”œβ”€β”€ error-handling.mdx
β”‚ β”œβ”€β”€ promise-all-and-concurrency.mdx
β”‚ β”œβ”€β”€ fetch-and-http-requests.mdx
β”‚ β”œβ”€β”€ api-response-types.mdx
β”‚ └── runtime-validation.mdx
β”œβ”€β”€ 16-dom-and-browser-types/
β”‚ β”œβ”€β”€ dom-type-definitions.mdx
β”‚ β”œβ”€β”€ query-selectors-and-nullability.mdx
β”‚ β”œβ”€β”€ events-and-event-types.mdx
β”‚ β”œβ”€β”€ forms-and-inputs.mdx
β”‚ β”œβ”€β”€ browser-storage.mdx
β”‚ β”œβ”€β”€ browser-apis.mdx
β”‚ β”œβ”€β”€ dom-manipulation.mdx
β”‚ └── typescript-and-accessibility.mdx
β”œβ”€β”€ 17-nodejs-and-backend/
β”‚ β”œβ”€β”€ typescript-with-nodejs.mdx
β”‚ β”œβ”€β”€ node-types-and-packages.mdx
β”‚ β”œβ”€β”€ environment-variables.mdx
β”‚ β”œβ”€β”€ filesystem-and-path.mdx
β”‚ β”œβ”€β”€ express-with-typescript.mdx
β”‚ β”œβ”€β”€ request-and-response-types.mdx
β”‚ β”œβ”€β”€ middleware-types.mdx
β”‚ β”œβ”€β”€ database-and-repository-types.mdx
β”‚ └── backend-validation.mdx
β”œβ”€β”€ 18-frameworks-and-integrations/
β”‚ β”œβ”€β”€ typescript-with-react.mdx
β”‚ β”œβ”€β”€ react-props-and-state.mdx
β”‚ β”œβ”€β”€ react-events-and-forms.mdx
β”‚ β”œβ”€β”€ typescript-with-nextjs.mdx
β”‚ β”œβ”€β”€ typescript-with-vite.mdx
β”‚ β”œβ”€β”€ typescript-with-nestjs.mdx
β”‚ └── third-party-library-types.mdx
β”œβ”€β”€ 19-testing-and-code-quality/
β”‚ β”œβ”€β”€ testing-typescript-projects.mdx
β”‚ β”œβ”€β”€ unit-testing-with-vitest.mdx
β”‚ β”œβ”€β”€ unit-testing-with-jest.mdx
β”‚ β”œβ”€β”€ mocking-and-test-doubles.mdx
β”‚ β”œβ”€β”€ integration-testing.mdx
β”‚ β”œβ”€β”€ eslint-and-typescript.mdx
β”‚ β”œβ”€β”€ prettier-and-formatting.mdx
β”‚ β”œβ”€β”€ type-tests.mdx
β”‚ └── continuous-integration.mdx
β”œβ”€β”€ 20-performance-and-best-practices/
β”‚ β”œβ”€β”€ type-safety-best-practices.mdx
β”‚ β”œβ”€β”€ avoid-any.mdx
β”‚ β”œβ”€β”€ runtime-vs-compile-time.mdx
β”‚ β”œβ”€β”€ large-project-organization.mdx
β”‚ β”œβ”€β”€ compiler-performance.mdx
β”‚ β”œβ”€β”€ dependency-and-version-management.mdx
β”‚ β”œβ”€β”€ security-and-input-validation.mdx
β”‚ └── migration-from-javascript.mdx
β”œβ”€β”€ 21-projects/
β”‚ β”œβ”€β”€ typed-calculator.mdx
β”‚ β”œβ”€β”€ expense-tracker.mdx
β”‚ β”œβ”€β”€ weather-dashboard.mdx
β”‚ β”œβ”€β”€ task-management-app.mdx
β”‚ β”œβ”€β”€ typed-rest-api.mdx
β”‚ β”œβ”€β”€ npm-package-project.mdx
β”‚ β”œβ”€β”€ react-dashboard.mdx
β”‚ └── full-stack-capstone.mdx
β”œβ”€β”€ reference/
β”‚ β”œβ”€β”€ typescript-types-cheatsheet.mdx
β”‚ β”œβ”€β”€ utility-types-reference.mdx
β”‚ β”œβ”€β”€ compiler-options-reference.mdx
β”‚ β”œβ”€β”€ common-errors-and-solutions.mdx
β”‚ β”œβ”€β”€ javascript-to-typescript-guide.mdx
β”‚ β”œβ”€β”€ glossary.mdx
β”‚ └── official-resources.mdx
└── assets/
β”œβ”€β”€ images/
β”œβ”€β”€ diagrams/
└── examples/