├── .github └── workflows │ ├── renovate-checks.yml │ └── section-repos.yml ├── .gitignore ├── .vscode └── settings.json ├── LICENSE.md ├── README.md ├── book-content ├── chapters │ ├── 01-setup-typescript.md │ ├── 02-ide-superpowers.md │ ├── 03-typescript-in-the-development-pipeline.md │ ├── 04-essential-types-and-annotations.md │ ├── 05-unions-literals-and-narrowing.md │ ├── 06-objects.md │ ├── 07-mutability.md │ ├── 08-classes.md │ ├── 09-typescript-only-features.md │ ├── 10-deriving-types.md │ ├── 11-annotations-and-assertions.md │ ├── 12-the-weird-parts.md │ ├── 13-modules-scripts-declaration-files.md │ ├── 14-configuring-typescript.md │ ├── 15-designing-your-types.md │ └── 16-the-utils-folder.md ├── formatter │ ├── format.ts │ ├── package.json │ └── tsconfig.json ├── fragments.md ├── preview-01.md └── readme.md ├── package.json ├── pnpm-lock.yaml ├── renovate.json ├── src ├── 005-kickstart-your-typescript-setup │ ├── 001-typescript-vs-javascript.explainer.ts │ ├── 002-how-typescript-works.explainer.png │ ├── 002-how-typescript-works.explainer.svg │ ├── 002-how-typescript-works.explainer.ts │ ├── 003-tools-needed.explainer.png │ ├── 003-tools-needed.explainer.ts │ ├── 004-set-up-node-js-and-vscode.explainer.ts │ ├── 005-set-up-npm-and-pnpm.explainer.png │ ├── 005-set-up-npm-and-pnpm.explainer.ts │ ├── 006-vscode-extension.explainer.ts │ └── workshop.md ├── 010-typescript-in-the-build-process │ ├── 010-typescript-in-the-browser.problem │ │ ├── example.ts │ │ ├── index.html │ │ └── readme.md │ ├── 010-typescript-in-the-browser.solution │ │ ├── example.js │ │ └── index.html │ ├── 011-compile-typescript-to-javascript.problem │ │ ├── example.ts │ │ ├── index.html │ │ └── readme.md │ ├── 011-compile-typescript-to-javascript.solution │ │ ├── .gitignore │ │ ├── example.ts │ │ ├── index.html │ │ └── tsconfig.json │ ├── 012-tsc-watch-mode.problem │ │ ├── .gitignore │ │ ├── example.ts │ │ ├── index.html │ │ ├── readme.md │ │ └── tsconfig.json │ ├── 012-tsc-watch-mode.solution │ │ ├── .gitignore │ │ ├── example.ts │ │ ├── index.html │ │ └── tsconfig.json │ ├── 013-compiling-to-a-directory.problem │ │ ├── .gitignore │ │ ├── example.ts │ │ ├── index.html │ │ ├── readme.md │ │ └── tsconfig.json │ ├── 013-compiling-to-a-directory.solution │ │ ├── .gitignore │ │ ├── example.ts │ │ ├── index.html │ │ └── tsconfig.json │ ├── 014-setting-up-a-frontend-app-with-vite.problem │ │ ├── .gitignore │ │ ├── example.ts │ │ ├── index.html │ │ ├── readme.md │ │ └── tsconfig.json │ ├── 014-setting-up-a-frontend-app-with-vite.solution │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── counter.ts │ │ │ ├── main.ts │ │ │ ├── style.css │ │ │ ├── typescript.svg │ │ │ └── vite-env.d.ts │ │ └── tsconfig.json │ ├── 015-typescript-as-a-linter.problem │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── public │ │ │ └── vite.svg │ │ ├── readme.md │ │ ├── src │ │ │ ├── counter.ts │ │ │ ├── main.ts │ │ │ ├── style.css │ │ │ ├── typescript.svg │ │ │ └── vite-env.d.ts │ │ └── tsconfig.json │ ├── 015-typescript-as-a-linter.solution │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── counter.ts │ │ │ ├── main.ts │ │ │ ├── style.css │ │ │ ├── typescript.svg │ │ │ └── vite-env.d.ts │ │ └── tsconfig.json │ ├── 016-typescript-on-ci.explainer │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── ci.yml │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── public │ │ │ └── vite.svg │ │ ├── readme.md │ │ ├── src │ │ │ ├── counter.ts │ │ │ ├── main.ts │ │ │ ├── style.css │ │ │ ├── typescript.svg │ │ │ └── vite-env.d.ts │ │ └── tsconfig.json │ ├── 017-blocking-your-dev-server-with-typescript.explainer.1 │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── public │ │ │ └── vite.svg │ │ ├── readme.md │ │ ├── src │ │ │ ├── counter.ts │ │ │ ├── main.ts │ │ │ ├── style.css │ │ │ ├── typescript.svg │ │ │ └── vite-env.d.ts │ │ └── tsconfig.json │ ├── 017-blocking-your-dev-server-with-typescript.explainer.2 │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── counter.ts │ │ │ ├── main.ts │ │ │ ├── style.css │ │ │ ├── typescript.svg │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ └── vite.config.js │ ├── 017-blocking-your-dev-server-with-typescript.explainer.3 │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── public │ │ │ └── vite.svg │ │ ├── src │ │ │ ├── counter.ts │ │ │ ├── main.ts │ │ │ ├── style.css │ │ │ ├── typescript.svg │ │ │ └── vite-env.d.ts │ │ └── tsconfig.json │ └── 019-using-tsx-to-create-quick-scripts.explainer │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── public │ │ └── vite.svg │ │ ├── scripts │ │ └── doSomething.ts │ │ ├── src │ │ ├── counter.ts │ │ ├── main.ts │ │ ├── style.css │ │ ├── typescript.svg │ │ └── vite-env.d.ts │ │ └── tsconfig.json ├── 015-essential-types-and-annotations │ ├── 020-basic-types-with-function-parameters.problem.ts │ ├── 020-basic-types-with-function-parameters.solution.ts │ ├── 021-annotating-empty-parameters.problem.ts │ ├── 021-annotating-empty-parameters.solution.ts │ ├── 022-all-types.problem.ts │ ├── 022-all-types.solution.1.ts │ ├── 022-all-types.solution.2.ts │ ├── 023-optional-function-parameters.problem.ts │ ├── 023-optional-function-parameters.solution.ts │ ├── 024-default-parameters.problem.ts │ ├── 024-default-parameters.solution.ts │ ├── 025-object-literal-types.problem.ts │ ├── 025-object-literal-types.solution.ts │ ├── 026-optional-property-types.problem.ts │ ├── 026-optional-property-types.solution.ts │ ├── 027-type-keyword.problem.ts │ ├── 027-type-keyword.solution.1.ts │ ├── 027-type-keyword.solution.2.ts │ ├── 027-type-keyword.solution.3.ts │ ├── 028-arrays.problem.ts │ ├── 028-arrays.solution.1.ts │ ├── 028-arrays.solution.2.ts │ ├── 029-arrays-of-objects.problem.ts │ ├── 029-arrays-of-objects.solution.1.ts │ ├── 029-arrays-of-objects.solution.2.ts │ ├── 029-arrays-of-objects.solution.3.ts │ ├── 029-arrays-of-objects.solution.4.ts │ ├── 030-rest-parameters-of-functions.problem.ts │ ├── 030-rest-parameters-of-functions.solution.1.ts │ ├── 030-rest-parameters-of-functions.solution.2.ts │ ├── 031-tuples.problem.ts │ ├── 031-tuples.solution.1.ts │ ├── 031-tuples.solution.2.ts │ ├── 032-optional-members-of-tuples.problem.ts │ ├── 032-optional-members-of-tuples.solution.1.ts │ ├── 032-optional-members-of-tuples.solution.2.ts │ ├── 032.5-any.problem.ts │ ├── 032.5-any.solution.ts │ ├── 033-function-types.problem.ts │ ├── 033-function-types.solution.ts │ ├── 034-functions-returning-void.problem.ts │ ├── 034-functions-returning-void.solution.ts │ ├── 034.5-void-vs-undefined.problem.ts │ ├── 034.5-void-vs-undefined.solution.ts │ ├── 035-pass-types-to-set.problem.ts │ ├── 035-pass-types-to-set.solution.1.ts │ ├── 035-pass-types-to-set.solution.2.ts │ ├── 036-pass-types-to-map.problem.ts │ ├── 036-pass-types-to-map.solution.1.ts │ ├── 036-pass-types-to-map.solution.2.ts │ ├── 036-pass-types-to-map.solution.3.ts │ ├── 036-pass-types-to-map.solution.4.ts │ ├── 037-json-parse-cant-receive-type-arguments.problem.ts │ ├── 037-json-parse-cant-receive-type-arguments.solution.ts │ ├── 038-type-async-functions.problem.ts │ ├── 038-type-async-functions.solution.1.ts │ ├── 038-type-async-functions.solution.2.ts │ └── workshop.md ├── 016.5-ide-superpowers │ ├── 039-understand-the-ts-server.explainer.svg │ ├── 039-understand-the-ts-server.explainer.ts │ ├── 040-understand-how-to-hover-a-variable-to-see-its-type.explainer.ts │ ├── 041-hovering-a-function-call.problem.ts │ ├── 041-hovering-a-function-call.solution.ts │ ├── 042-adding-tsdoc-comments-for-hovers.problem.ts │ ├── 042-adding-tsdoc-comments-for-hovers.solution.ts │ ├── 044-manually-triggering-autocomplete.problem.ts │ ├── 044-manually-triggering-autocomplete.solution.ts │ ├── 045-basics-of-errors.explainer.ts │ ├── 046-go-to-definition.explainer.ts │ ├── 047-rename-symbol.explainer.ts │ ├── 048-auto-import.problem.ts │ ├── 048-auto-import.solution.ts │ ├── 049-organize-imports.problem.ts │ ├── 049-organize-imports.solution.ts │ ├── 050-refactor.problem.ts │ ├── 050-refactor.solution.ts │ ├── 051-prettier-format-on-save.explainer.ts │ ├── 052-resetting-the-typescript-server.explainer.ts │ ├── dummy-import-2.ts │ └── dummy-import.ts ├── 018-unions-and-narrowing │ ├── 053-introduction-to-unions.problem.ts │ ├── 053-introduction-to-unions.solution.ts │ ├── 053.5-unions-diagram.explainer.svg │ ├── 054-literal-types.problem.ts │ ├── 054-literal-types.solution.1.ts │ ├── 054-literal-types.solution.2.ts │ ├── 054.5-literal-type-assignability.explainer.svg │ ├── 055-combining-unions.problem.ts │ ├── 055-combining-unions.solution.ts │ ├── 056-how-big-can-a-union-be.explainer.ts │ ├── 057-literals-vs-wider-types.explainer.1.svg │ ├── 057-literals-vs-wider-types.explainer.2.svg │ ├── 057-literals-vs-wider-types.explainer.ts │ ├── 058-narrowing-unions-with-typeof.explainer.ts │ ├── 059-narrowing-with-if-statements.problem.ts │ ├── 059-narrowing-with-if-statements.solution.1.svg │ ├── 059-narrowing-with-if-statements.solution.1.ts │ ├── 059-narrowing-with-if-statements.solution.2.ts │ ├── 059-narrowing-with-if-statements.solution.3.ts │ ├── 059-narrowing-with-if-statements.solution.4.ts │ ├── 059-narrowing-with-if-statements.solution.5.ts │ ├── 060-narrowing-with-boolean-wont-work.explainer.ts │ ├── 061-map-has-doesnt-narrow-map-get.problem.ts │ ├── 061-map-has-doesnt-narrow-map-get.solution.ts │ ├── 062-throwing-errors-to-narrow.problem.ts │ ├── 062-throwing-errors-to-narrow.solution.ts │ ├── 064-narrowing-with-in-statements.problem.ts │ ├── 064-narrowing-with-in-statements.solution.ts │ ├── 065-introduction-to-unknown.explainer.svg │ ├── 065-introduction-to-unknown.explainer.ts │ ├── 065.5-narrowing-with-instanceof-statements.problem.ts │ ├── 065.5-narrowing-with-instanceof-statements.solution.ts │ ├── 066-narrowing-unknown-to-a-value.problem.ts │ ├── 066-narrowing-unknown-to-a-value.solution.ts │ ├── 067-introduction-to-never.explainer.svg │ ├── 067-introduction-to-never.explainer.ts │ ├── 067.5-never-array.problem.ts │ ├── 067.5-never-array.solution.ts │ ├── 068-returning-never-to-narrow.problem.ts │ ├── 068-returning-never-to-narrow.solution.1.ts │ ├── 068-returning-never-to-narrow.solution.2.ts │ ├── 071-narrowing-in-different-scopes.problem.ts │ ├── 071-narrowing-in-different-scopes.solution.ts │ ├── 072.5-reusable-type-guards.problem.ts │ ├── 072.5-reusable-type-guards.solution.ts │ ├── 074-intro-to-discriminated-unions.problem.ts │ ├── 074-intro-to-discriminated-unions.solution.ts │ ├── 075-destructuring-a-discriminated-union.problem.ts │ ├── 075-destructuring-a-discriminated-union.solution.ts │ ├── 076-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts │ ├── 076-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts │ ├── 077-narrowing-with-switch-true.explainer.ts │ ├── 078-destructuring-a-discriminated-tuple.problem.ts │ ├── 078-destructuring-a-discriminated-tuple.solution.ts │ ├── 079-discriminated-booleans.problem.ts │ ├── 079-discriminated-booleans.solution.ts │ ├── 080-adding-defaults-to-discriminated-union.problem.ts │ ├── 080-adding-defaults-to-discriminated-union.solution.ts │ ├── 080.5-should-you-provide-function-return-types.explainer.ts │ └── workshop.md ├── 020-objects │ ├── 081-extend-object-using-intersections.problem.ts │ ├── 081-extend-object-using-intersections.solution.ts │ ├── 082-extend-object-using-interfaces.problem.ts │ ├── 082-extend-object-using-interfaces.solution.1.ts │ ├── 082-extend-object-using-interfaces.solution.2.ts │ ├── 082.5-extending-incompatible-properties.problem.ts │ ├── 082.5-extending-incompatible-properties.solution.ts │ ├── 083-compare-between-intersections-and-interfaces.explainer.ts │ ├── 084-index-signatures.problem.ts │ ├── 084-index-signatures.solution.1.ts │ ├── 084-index-signatures.solution.2.ts │ ├── 084-index-signatures.solution.3.ts │ ├── 084-index-signatures.solution.4.ts │ ├── 085-index-signatures-with-defined-keys.problem.ts │ ├── 085-index-signatures-with-defined-keys.solution.1.ts │ ├── 085-index-signatures-with-defined-keys.solution.2.ts │ ├── 086-property-key-type.problem.ts │ ├── 086-property-key-type.solution.ts │ ├── 086.5-object-type.explainer.ts │ ├── 087-record-type-with-union-as-keys.problem.ts │ ├── 087-record-type-with-union-as-keys.solution.1.ts │ ├── 087-record-type-with-union-as-keys.solution.2.ts │ ├── 088-declaration-merging-of-interfaces.problem.ts │ ├── 088-declaration-merging-of-interfaces.solution.ts │ ├── 089-pick-type-helper.problem.ts │ ├── 089-pick-type-helper.solution.1.ts │ ├── 089-pick-type-helper.solution.2.ts │ ├── 091-omit-type-helper.problem.ts │ ├── 091-omit-type-helper.solution.1.ts │ ├── 091-omit-type-helper.solution.2.ts │ ├── 092-no-autocomplete-on-omit.explainer.ts │ ├── 093-omit-cant-distribute.explainer.1.ts │ ├── 093-omit-cant-distribute.explainer.2.ts │ ├── 095-partial-type-helper.problem.ts │ ├── 095-partial-type-helper.solution.ts │ ├── 096-required-type-helper.explainer.ts │ ├── 096.5-common-keys-of-unions-of-objects.problem.ts │ ├── 096.5-common-keys-of-unions-of-objects.solution.ts │ └── workshop.md ├── 028-mutability │ ├── 097-let-and-const-inference.problem.ts │ ├── 097-let-and-const-inference.solution.1.ts │ ├── 097-let-and-const-inference.solution.2.ts │ ├── 098-object-property-inference.problem.ts │ ├── 098-object-property-inference.solution.ts │ ├── 099-readonly-object-properties.problem.ts │ ├── 099-readonly-object-properties.solution.ts │ ├── 100-readonly-type-helper.problem.ts │ ├── 100-readonly-type-helper.solution.ts │ ├── 101-intro-to-as-const.problem.ts │ ├── 101-intro-to-as-const.solution.ts │ ├── 102-as-const-vs-object-freeze.problem.ts │ ├── 102-as-const-vs-object-freeze.solution.ts │ ├── 103-readonly-arrays.problem.ts │ ├── 103-readonly-arrays.solution.1.ts │ ├── 103-readonly-arrays.solution.2.ts │ ├── 104-readonly-arrays-assignability-to-mutable-arrays.explainer.ts │ ├── 104.5-fixing-unsafe-tuples.problem.ts │ ├── 104.5-fixing-unsafe-tuples.solution.ts │ ├── 105-includes-on-readonly-arrays.explainer.ts │ ├── 106-as-const-to-make-functions-infer-a-tuple.problem.ts │ ├── 106-as-const-to-make-functions-infer-a-tuple.solution.1.ts │ ├── 106-as-const-to-make-functions-infer-a-tuple.solution.2.ts │ ├── 107-as-const-can-make-strings-infer-as-their-literals-in-objects.explainer.ts │ └── workshop.md ├── 030-classes │ ├── 108-understand-classes.problem.ts │ ├── 108-understand-classes.solution.1.ts │ ├── 108-understand-classes.solution.2.ts │ ├── 109-class-methods.problem.ts │ ├── 109-class-methods.solution.1.ts │ ├── 109-class-methods.solution.2.ts │ ├── 110-receiving-arguments-to-constructor.problem.ts │ ├── 110-receiving-arguments-to-constructor.solution.1.ts │ ├── 110-receiving-arguments-to-constructor.solution.2.ts │ ├── 111-getters.problem.ts │ ├── 111-getters.solution.ts │ ├── 112-public-and-private-properties.problem.ts │ ├── 112-public-and-private-properties.solution.1.ts │ ├── 112-public-and-private-properties.solution.2.ts │ ├── 113-setters.problem.ts │ ├── 113-setters.solution.ts │ ├── 114-extending-other-classes.problem.ts │ ├── 114-extending-other-classes.solution.ts │ ├── 115-implementing-interfaces-or-types.problem.ts │ ├── 115-implementing-interfaces-or-types.solution.1.ts │ ├── 115-implementing-interfaces-or-types.solution.2.ts │ ├── 116-this-in-functions-and-objects.problem.ts │ ├── 116-this-in-functions-and-objects.solution.ts │ └── workshop.md ├── 032-typescript-only-features │ ├── 116.5-intro.explainer.ts │ ├── 117-parameter-properties.explainer.ts │ ├── 118-enums.problem.ts │ ├── 118-enums.solution.1.ts │ ├── 118-enums.solution.2.ts │ ├── 119-string-enums.problem.ts │ ├── 119-string-enums.solution.ts │ ├── 120-const-enums.explainer │ │ ├── index.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── 121-namespaces.explainer.ts │ ├── 122-namespaces-can-declaration-merge.explainer.ts │ ├── 123-interfaces-within-namespaces-can-declaration-merge.explainer.ts │ ├── 124-prefer-es-features-to-ts-features.explainer │ │ ├── index.ts │ │ ├── package.json │ │ └── tsconfig.json │ └── workshop.md ├── 040-deriving-types-from-values │ ├── 124.5-intro.explainer.ts │ ├── 125-keyof.problem.ts │ ├── 125-keyof.solution.ts │ ├── 126-typeof-keyword.problem.ts │ ├── 126-typeof-keyword.solution.1.ts │ ├── 126-typeof-keyword.solution.2.ts │ ├── 128-create-runtime-values-from-types.explainer.ts │ ├── 129-classes-cross-value-and-type-world.problem.ts │ ├── 129-classes-cross-value-and-type-world.solution.ts │ ├── 129.5-enums-cross-value-and-type-world.explainer.ts │ ├── 130-this-crosses-value-and-type-world.explainer.ts │ ├── 131-naming-values-and-types-the-same.explainer.1.ts │ ├── 131-naming-values-and-types-the-same.explainer.2.ts │ ├── 132-parameters-type-helper.problem.ts │ ├── 132-parameters-type-helper.solution.ts │ ├── 133-return-type.problem.ts │ ├── 133-return-type.solution.ts │ ├── 134-awaited-type-helper.problem.ts │ ├── 134-awaited-type-helper.solution.ts │ ├── 135-indexed-access-types.problem.ts │ ├── 135-indexed-access-types.solution.ts │ ├── 136-pass-unions-to-indexed-access-types.problem.ts │ ├── 136-pass-unions-to-indexed-access-types.solution.ts │ ├── 137-pass-keyof-into-an-indexed-access-type.problem.ts │ ├── 137-pass-keyof-into-an-indexed-access-type.solution.1.ts │ ├── 137-pass-keyof-into-an-indexed-access-type.solution.2.ts │ ├── 138-create-a-union-from-an-as-const-array.problem.ts │ ├── 138-create-a-union-from-an-as-const-array.solution.ts │ └── workshop.md ├── 045-annotations-and-assertions │ ├── 139-dont-annotate-too-much.problem.ts │ ├── 139-dont-annotate-too-much.solution.ts │ ├── 141-as-and-as-any.problem.ts │ ├── 141-as-and-as-any.solution.1.ts │ ├── 141-as-and-as-any.solution.2.ts │ ├── 142-global-typings-use-any.problem.ts │ ├── 142-global-typings-use-any.solution.1.ts │ ├── 142-global-typings-use-any.solution.2.ts │ ├── 143-limits-of-as.explainer.ts │ ├── 143.5-non-null-assertions.problem.ts │ ├── 143.5-non-null-assertions.solution.ts │ ├── 144-ts-ignore.explainer.1.ts │ ├── 144-ts-ignore.explainer.2.ts │ ├── 145-ts-expect-error.explainer.ts │ ├── 145.5-ts-nocheck.explainer.ts │ ├── 145.8-when-to-assert.explainer.ts │ ├── 146-satisfies.problem.ts │ ├── 146-satisfies.solution.svg │ ├── 146-satisfies.solution.ts │ ├── 146.5-typeof-keyof-and-satisfies-keyword.problem.ts │ ├── 146.5-typeof-keyof-and-satisfies-keyword.solution.ts │ ├── 146.7-satisfies-helps-narrow-literals.explainer.ts │ ├── 147-satisfies-vs-as-vs-variable-annotations.problem.ts │ ├── 147-satisfies-vs-as-vs-variable-annotations.solution.svg │ ├── 147-satisfies-vs-as-vs-variable-annotations.solution.ts │ ├── 148-satisfies-with-as-const.problem.ts │ ├── 148-satisfies-with-as-const.solution.ts │ └── workshop.md ├── 050-the-weird-parts │ ├── 150-empty-object-type.problem.ts │ ├── 150-empty-object-type.solution.1.svg │ ├── 150-empty-object-type.solution.2.svg │ ├── 150-empty-object-type.solution.ts │ ├── 151-truly-empty-object.problem.ts │ ├── 151-truly-empty-object.solution.1.ts │ ├── 151-truly-empty-object.solution.2.ts │ ├── 152-excess-properties-warnings.problem.ts │ ├── 152-excess-properties-warnings.solution.1.ts │ ├── 152-excess-properties-warnings.solution.2.ts │ ├── 152-excess-properties-warnings.solution.3.ts │ ├── 152-excess-properties-warnings.solution.svg │ ├── 153-excess-properties-warnings-in-functions.problem.ts │ ├── 153-excess-properties-warnings-in-functions.solution.1.ts │ ├── 153-excess-properties-warnings-in-functions.solution.2.ts │ ├── 154-object-keys-and-object-entries.explainer.ts │ ├── 154.6-iterating-over-objects.problem.ts │ ├── 154.6-iterating-over-objects.solution.1.ts │ ├── 154.6-iterating-over-objects.solution.2.ts │ ├── 154.6-iterating-over-objects.solution.3.ts │ ├── 154.6-iterating-over-objects.solution.4.ts │ ├── 154.8-evolving-any.problem.ts │ ├── 154.8-evolving-any.solution.ts │ ├── 154.9-evolving-any-arrays.explainer.ts │ ├── 155-function-parameter-comparisons.problem.ts │ ├── 155-function-parameter-comparisons.solution.ts │ ├── 156-unions-of-functions-with-object-params.problem.ts │ ├── 156-unions-of-functions-with-object-params.solution.ts │ ├── 157-unions-of-functions.problem.ts │ ├── 157-unions-of-functions.solution.1.ts │ ├── 157-unions-of-functions.solution.2.ts │ ├── 158-unions-of-function-return-types.explainer.ts │ ├── 158.5-annotating-errors-a-function-throws.problem.ts │ ├── 158.5-annotating-errors-a-function-throws.solution.ts │ └── workshop.md ├── 060-modules-scripts-and-declaration-files │ ├── 159-module-or-script.explainer │ │ ├── package.json │ │ ├── src │ │ │ ├── module-1.ts │ │ │ ├── module-2.ts │ │ │ ├── script-1.ts │ │ │ └── script-2.ts │ │ └── tsconfig.json │ ├── 160-module-detection-force.problem │ │ ├── package.json │ │ ├── src │ │ │ ├── script-1.ts │ │ │ └── script-2.ts │ │ └── tsconfig.json │ ├── 160-module-detection-force.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── script-1.ts │ │ │ └── script-2.ts │ │ └── tsconfig.json │ ├── 161-declaration-files.explainer │ │ ├── package.json │ │ ├── src │ │ │ ├── can-export-types.d.ts │ │ │ ├── cant-use-runtime-code.d.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 162-declaration-files-can-be-modules-or-scripts.explainer │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── treated-as-module.d.ts │ │ │ └── treated-as-script.d.ts │ │ └── tsconfig.json │ ├── 164-declaration-files-can-be-used-to-type-js-files.problem │ │ ├── package.json │ │ ├── src │ │ │ ├── example.js │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 164-declaration-files-can-be-used-to-type-js-files.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── example.d.ts │ │ │ ├── example.js │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 166-ambient-context-and-declare-const.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 166-ambient-context-and-declare-const.solution │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 167-declare-global.problem │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── other-file.ts │ │ └── tsconfig.json │ ├── 167-declare-global.solution.1 │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── other-file.ts │ │ └── tsconfig.json │ ├── 167-declare-global.solution.2 │ │ ├── package.json │ │ ├── src │ │ │ ├── debug.d.ts │ │ │ ├── index.ts │ │ │ └── other-file.ts │ │ └── tsconfig.json │ └── plan.md ├── 065-types-you-dont-control │ ├── 172-lib-d-ts.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 172-lib-d-ts.solution.1 │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 172-lib-d-ts.solution.2 │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 173-lib-dom.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 173-lib-dom.solution │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 174-lib-dom-iterable.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 174-lib-dom-iterable.solution │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 174.5-modifying-window.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 174.5-modifying-window.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── window.d.ts │ │ └── tsconfig.json │ ├── 175-definitely-typed.problem │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 175-definitely-typed.solution │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 175.2-types-node.explainer │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 175.5-modifying-process-env.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 175.5-modifying-process-env.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── process.d.ts │ │ └── tsconfig.json │ ├── 176-types-that-ship-with-libraries.explainer │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 176.2-declare-module.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 176.2-declare-module.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── my-module-name-does-not-matter.d.ts │ │ └── tsconfig.json │ ├── 176.3-wildcard-in-declare-module.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 176.3-wildcard-in-declare-module.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── png.d.ts │ │ └── tsconfig.json │ ├── 176.5-skip-lib-check-true.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.d.ts │ │ └── tsconfig.json │ ├── 176.5-skip-lib-check-true.solution │ │ ├── package.json │ │ ├── src │ │ │ └── index.d.ts │ │ └── tsconfig.json │ ├── 176.7-should-you-use-declaration-files-to-store-your-types.explainer │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── types.d.ts │ │ └── tsconfig.json │ ├── 177-declare-module-for-overriding-third-party-libraries.explainer │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ ├── index.ts │ │ │ └── zod.d.ts │ │ └── tsconfig.json │ └── plan.md ├── 080-configuring-typescript │ ├── 178-my-recommended-tsconfig-base.explainer │ │ ├── notes.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── 178.5-isolated-modules.explainer │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 179-no-unchecked-indexed-access.problem │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 179-no-unchecked-indexed-access.solution │ │ ├── package.json │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 179.5-no-emit.problem │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 179.5-no-emit.solution │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 180-module-resolution-bundler-or-nodenext.explainer │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ ├── example.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 181-lib-vs-target.explainer │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 181.2-creating-declaration-files.problem │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 181.2-creating-declaration-files.solution │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 181.4-declaration-maps.problem │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ ├── test.ts │ │ └── tsconfig.json │ ├── 181.4-declaration-maps.solution │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ ├── test.ts │ │ └── tsconfig.json │ ├── 182-jsx.problem │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── 182-jsx.solution.1 │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── 182-jsx.solution.2 │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── 183-multiple-tsconfig-json-files.problem │ │ ├── package.json │ │ ├── src │ │ │ ├── client.ts │ │ │ └── server.ts │ │ └── tsconfig.json │ ├── 183-multiple-tsconfig-json-files.solution │ │ ├── package.json │ │ └── src │ │ │ ├── client │ │ │ ├── index.ts │ │ │ └── tsconfig.json │ │ │ └── server │ │ │ ├── index.ts │ │ │ └── tsconfig.json │ ├── 184-globals-are-tied-to-a-single-tsconfig.explainer │ │ ├── package.json │ │ └── src │ │ │ ├── client │ │ │ ├── index.ts │ │ │ └── tsconfig.json │ │ │ └── server │ │ │ ├── index.ts │ │ │ ├── server.d.ts │ │ │ └── tsconfig.json │ ├── 185-extending-from-other-tsconfig-json-files.problem │ │ ├── package.json │ │ └── src │ │ │ ├── client │ │ │ ├── index.ts │ │ │ └── tsconfig.json │ │ │ └── server │ │ │ ├── index.ts │ │ │ └── tsconfig.json │ ├── 185-extending-from-other-tsconfig-json-files.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── client │ │ │ │ ├── index.ts │ │ │ │ └── tsconfig.json │ │ │ └── server │ │ │ │ ├── index.ts │ │ │ │ └── tsconfig.json │ │ └── tsconfig.base.json │ ├── 186-project-references.problem │ │ ├── checklist.md │ │ ├── package.json │ │ ├── src │ │ │ ├── client │ │ │ │ ├── index.ts │ │ │ │ └── tsconfig.json │ │ │ └── server │ │ │ │ ├── index.ts │ │ │ │ └── tsconfig.json │ │ └── tsconfig.base.json │ ├── 186-project-references.solution.1 │ │ ├── checklist.md │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ ├── client │ │ │ │ ├── index.ts │ │ │ │ └── tsconfig.json │ │ │ └── server │ │ │ │ ├── index.ts │ │ │ │ └── tsconfig.json │ │ ├── tsconfig.base.json │ │ └── tsconfig.json │ ├── 186-project-references.solution.2 │ │ ├── checklist.md │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ ├── client │ │ │ │ └── index.ts │ │ │ └── server │ │ │ │ └── index.ts │ │ ├── tsconfig.base.json │ │ ├── tsconfig.client.json │ │ ├── tsconfig.json │ │ └── tsconfig.server.json │ ├── 186-project-references.solution.3 │ │ ├── .config │ │ │ ├── tsconfig.base.json │ │ │ ├── tsconfig.client.json │ │ │ └── tsconfig.server.json │ │ ├── checklist.md │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ ├── client │ │ │ │ └── index.ts │ │ │ └── server │ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 190-setting-up-types-for-node.explainer │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── index.ts │ │ └── tsconfig.json │ └── plan.md ├── 082-cjs-vs-esm │ ├── 193-intro.explainer.ts │ ├── 194-cant-import-esm-into-cjs.problem │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ └── src │ │ │ ├── esm-module.js │ │ │ └── index.js │ ├── 194-cant-import-esm-into-cjs.solution │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ └── src │ │ │ ├── esm-module.mjs │ │ │ └── index.js │ ├── 195-can-import-cjs-into-esm.explainer │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ └── src │ │ │ ├── cjs-module.cjs │ │ │ └── index.mjs │ ├── 196-mts-files.problem │ │ ├── package.json │ │ ├── src │ │ │ ├── esm-module.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 196-mts-files.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── esm-module.mts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 196.5-browsers-cant-use-cjs.explainer.1 │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ ├── example.ts │ │ │ └── run.ts │ │ └── tsconfig.json │ ├── 196.5-browsers-cant-use-cjs.explainer.2 │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ ├── example.mts │ │ │ └── run.mts │ │ └── tsconfig.json │ ├── 197-verbatim-module-syntax.problem │ │ ├── package.json │ │ ├── src │ │ │ └── cjs-module.ts │ │ └── tsconfig.json │ ├── 197-verbatim-module-syntax.solution │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ └── cjs-module.ts │ │ └── tsconfig.json │ ├── 198-treat-ts-files-as-esm.problem │ │ ├── package.json │ │ ├── src │ │ │ ├── esm-module.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 198-treat-ts-files-as-esm.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── esm-module.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 200-import-syntax-for-cts.problem │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── other-module.ts │ │ └── tsconfig.json │ ├── 200-import-syntax-for-cts.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── other-module.ts │ │ └── tsconfig.json │ ├── 201-module-nodenext-emits-the-right-extensions.explainer │ │ ├── package.json │ │ ├── pnpm-lock.yaml │ │ ├── src │ │ │ ├── cjs-module.cts │ │ │ ├── esm-module.mts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── 202.5-import-type.problem │ │ ├── package.json │ │ ├── src │ │ │ ├── esm-module.ts │ │ │ └── module-containing-types.ts │ │ └── tsconfig.json │ ├── 202.5-import-type.solution │ │ ├── package.json │ │ ├── src │ │ │ ├── esm-module.ts │ │ │ └── module-containing-types.ts │ │ └── tsconfig.json │ ├── 202.6-should-i-use-cjs-or-esm.explainer.ts │ └── 202.7-applications-vs-libraries.explainer.ts ├── 083-designing-your-types │ ├── 203-domain-modelling-in-typescript.explainer.ts │ ├── 204-intro-to-generic-types.problem.ts │ ├── 204-intro-to-generic-types.solution.ts │ ├── 205-multiple-type-parameters.problem.ts │ ├── 205-multiple-type-parameters.solution.ts │ ├── 206-result-type.explainer.ts │ ├── 207-default-type-parameters.problem.ts │ ├── 207-default-type-parameters.solution.ts │ ├── 208-type-parameter-constraints.problem.ts │ ├── 208-type-parameter-constraints.solution.ts │ ├── 209-tighter-version-of-omit.problem.ts │ ├── 209-tighter-version-of-omit.solution.ts │ ├── 210-template-literal-types.problem.ts │ ├── 210-template-literal-types.solution.ts │ ├── 211-passing-unions-to-template-literal-types.problem.ts │ ├── 211-passing-unions-to-template-literal-types.solution.ts │ ├── 212-mapped-types.problem.ts │ ├── 212-mapped-types.solution.ts │ ├── 213-as-in-mapped-types.problem.ts │ ├── 213-as-in-mapped-types.solution.ts │ └── workshop.md ├── 085-the-utils-folder │ ├── 214-intro-to-the-utils-folder.explainer.ts │ ├── 215-generic-functions-without-inference.problem.ts │ ├── 215-generic-functions-without-inference.solution.ts │ ├── 216-type-parameter-defaults-in-generic-functions.problem.ts │ ├── 216-type-parameter-defaults-in-generic-functions.solution.ts │ ├── 217-generic-functions-with-inference.problem.ts │ ├── 217-generic-functions-with-inference.solution.ts │ ├── 218-type-parameter-constraints-with-generic-functions.problem.ts │ ├── 218-type-parameter-constraints-with-generic-functions.solution.ts │ ├── 219-combining-generic-types-with-generic-functions.problem.ts │ ├── 219-combining-generic-types-with-generic-functions.solution.ts │ ├── 220-multiple-type-arguments-in-generic-functions.problem.ts │ ├── 220-multiple-type-arguments-in-generic-functions.solution.ts │ ├── 221-type-predicates.problem.ts │ ├── 221-type-predicates.solution.ts │ ├── 222-assertion-functions.problem.ts │ ├── 222-assertion-functions.solution.ts │ ├── 223-function-overloads.problem.ts │ ├── 223-function-overloads.solution.ts │ └── workshop.md ├── 090-the-style-guide │ ├── 224-hungarian-notation.problem.ts │ ├── 224-hungarian-notation.solution.ts │ ├── 225-where-to-put-your-types.problem.ts │ ├── 225-where-to-put-your-types.solution.ts │ ├── 226-colocation-of-types.problem.ts │ ├── 226-colocation-of-types.solution.ts │ ├── 227-setting-up-eslint.explainer.ts │ ├── 228-explicit-any-rule-or-not.problem.ts │ ├── 228-explicit-any-rule-or-not.solution.ts │ ├── 229-explicit-return-types-or-not.problem.ts │ ├── 229-explicit-return-types-or-not.solution.ts │ ├── 230-any-vs-ts-ignore-vs-ts-expect-error.problem.ts │ ├── 230-any-vs-ts-ignore-vs-ts-expect-error.solution.ts │ ├── 231-dont-declare-type-and-value-with-the-same-name.problem.ts │ ├── 231-dont-declare-type-and-value-with-the-same-name.solution.ts │ ├── 232-types-vs-interfaces.problem.ts │ ├── 232-types-vs-interfaces.solution.ts │ ├── 233-dont-use-uppercase-function-object-string-boolean-as-types.problem.ts │ ├── 233-dont-use-uppercase-function-object-string-boolean-as-types.solution.ts │ ├── 234-dont-make-your-types-globally-available-types.problem.ts │ ├── 234-dont-make-your-types-globally-available-types.solution.ts │ ├── 235-how-strict-should-you-configure-ts.problem.ts │ ├── 235-how-strict-should-you-configure-ts.solution.ts │ ├── 236-dont-unnecessarily-widen-types.problem.ts │ ├── 236-dont-unnecessarily-widen-types.solution.ts │ └── plan.md └── 095-migrating-from-javascript │ ├── 237-strict-file-by-file-vs-ramp-up-strictness.problem.ts │ ├── 237-strict-file-by-file-vs-ramp-up-strictness.solution.ts │ ├── 238-dependencies-first.problem.ts │ ├── 238-dependencies-first.solution.ts │ ├── 239-typing-third-party-modules.problem.ts │ ├── 239-typing-third-party-modules.solution.ts │ ├── 240-madge.problem.ts │ ├── 240-madge.solution.ts │ ├── 241-understanding-the-structure-of-ts-errors.problem.ts │ ├── 241-understanding-the-structure-of-ts-errors.solution.ts │ ├── 242-experiments-with-jsdoc.problem.ts │ ├── 242-experiments-with-jsdoc.solution.ts │ ├── 243-jsdoc-cannot-pass-types-to-functions.problem.ts │ ├── 243-jsdoc-cannot-pass-types-to-functions.solution.ts │ └── plan.md ├── tsconfig.json ├── vite.config.mts └── workshop.md /.github/workflows/renovate-checks.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/.github/workflows/renovate-checks.yml -------------------------------------------------------------------------------- /.github/workflows/section-repos.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/.github/workflows/section-repos.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/README.md -------------------------------------------------------------------------------- /book-content/chapters/01-setup-typescript.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/01-setup-typescript.md -------------------------------------------------------------------------------- /book-content/chapters/02-ide-superpowers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/02-ide-superpowers.md -------------------------------------------------------------------------------- /book-content/chapters/03-typescript-in-the-development-pipeline.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/03-typescript-in-the-development-pipeline.md -------------------------------------------------------------------------------- /book-content/chapters/04-essential-types-and-annotations.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/04-essential-types-and-annotations.md -------------------------------------------------------------------------------- /book-content/chapters/05-unions-literals-and-narrowing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/05-unions-literals-and-narrowing.md -------------------------------------------------------------------------------- /book-content/chapters/06-objects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/06-objects.md -------------------------------------------------------------------------------- /book-content/chapters/07-mutability.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/07-mutability.md -------------------------------------------------------------------------------- /book-content/chapters/08-classes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/08-classes.md -------------------------------------------------------------------------------- /book-content/chapters/09-typescript-only-features.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/09-typescript-only-features.md -------------------------------------------------------------------------------- /book-content/chapters/10-deriving-types.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/10-deriving-types.md -------------------------------------------------------------------------------- /book-content/chapters/11-annotations-and-assertions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/11-annotations-and-assertions.md -------------------------------------------------------------------------------- /book-content/chapters/12-the-weird-parts.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/12-the-weird-parts.md -------------------------------------------------------------------------------- /book-content/chapters/13-modules-scripts-declaration-files.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/13-modules-scripts-declaration-files.md -------------------------------------------------------------------------------- /book-content/chapters/14-configuring-typescript.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/14-configuring-typescript.md -------------------------------------------------------------------------------- /book-content/chapters/15-designing-your-types.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/15-designing-your-types.md -------------------------------------------------------------------------------- /book-content/chapters/16-the-utils-folder.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/chapters/16-the-utils-folder.md -------------------------------------------------------------------------------- /book-content/formatter/format.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/formatter/format.ts -------------------------------------------------------------------------------- /book-content/formatter/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /book-content/formatter/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/formatter/tsconfig.json -------------------------------------------------------------------------------- /book-content/fragments.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/fragments.md -------------------------------------------------------------------------------- /book-content/preview-01.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/preview-01.md -------------------------------------------------------------------------------- /book-content/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/book-content/readme.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/renovate.json -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/001-typescript-vs-javascript.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/005-kickstart-your-typescript-setup/001-typescript-vs-javascript.explainer.ts -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/002-how-typescript-works.explainer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/005-kickstart-your-typescript-setup/002-how-typescript-works.explainer.png -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/002-how-typescript-works.explainer.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/005-kickstart-your-typescript-setup/002-how-typescript-works.explainer.svg -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/002-how-typescript-works.explainer.ts: -------------------------------------------------------------------------------- 1 | // Explain diagram 2 | -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/003-tools-needed.explainer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/005-kickstart-your-typescript-setup/003-tools-needed.explainer.png -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/003-tools-needed.explainer.ts: -------------------------------------------------------------------------------- 1 | // Explain diagram 2 | -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/004-set-up-node-js-and-vscode.explainer.ts: -------------------------------------------------------------------------------- 1 | // Explain in video 2 | -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/005-set-up-npm-and-pnpm.explainer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/005-kickstart-your-typescript-setup/005-set-up-npm-and-pnpm.explainer.png -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/005-set-up-npm-and-pnpm.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/005-kickstart-your-typescript-setup/005-set-up-npm-and-pnpm.explainer.ts -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/006-vscode-extension.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/005-kickstart-your-typescript-setup/006-vscode-extension.explainer.ts -------------------------------------------------------------------------------- /src/005-kickstart-your-typescript-setup/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/005-kickstart-your-typescript-setup/workshop.md -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/011-compile-typescript-to-javascript.solution/.gitignore: -------------------------------------------------------------------------------- 1 | *.js -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/012-tsc-watch-mode.problem/.gitignore: -------------------------------------------------------------------------------- 1 | *.js -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/012-tsc-watch-mode.problem/example.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/012-tsc-watch-mode.problem/example.ts -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/012-tsc-watch-mode.problem/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/012-tsc-watch-mode.problem/index.html -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/012-tsc-watch-mode.problem/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/012-tsc-watch-mode.problem/readme.md -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/012-tsc-watch-mode.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/012-tsc-watch-mode.problem/tsconfig.json -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/012-tsc-watch-mode.solution/.gitignore: -------------------------------------------------------------------------------- 1 | *.js -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/012-tsc-watch-mode.solution/example.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/012-tsc-watch-mode.solution/example.ts -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/012-tsc-watch-mode.solution/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/012-tsc-watch-mode.solution/index.html -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/012-tsc-watch-mode.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/012-tsc-watch-mode.solution/tsconfig.json -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/013-compiling-to-a-directory.problem/.gitignore: -------------------------------------------------------------------------------- 1 | *.js -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/013-compiling-to-a-directory.solution/.gitignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/014-setting-up-a-frontend-app-with-vite.problem/.gitignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/014-setting-up-a-frontend-app-with-vite.solution/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/015-typescript-as-a-linter.problem/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/015-typescript-as-a-linter.problem/.gitignore -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/015-typescript-as-a-linter.problem/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/015-typescript-as-a-linter.problem/index.html -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/015-typescript-as-a-linter.problem/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/015-typescript-as-a-linter.problem/readme.md -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/015-typescript-as-a-linter.problem/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/015-typescript-as-a-linter.solution/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/.gitignore -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/index.html -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/package.json -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/readme.md -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/src/counter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/src/counter.ts -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/src/main.ts -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/src/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/src/style.css -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/010-typescript-in-the-build-process/016-typescript-on-ci.explainer/tsconfig.json -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/017-blocking-your-dev-server-with-typescript.explainer.1/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/017-blocking-your-dev-server-with-typescript.explainer.2/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/017-blocking-your-dev-server-with-typescript.explainer.3/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/010-typescript-in-the-build-process/019-using-tsx-to-create-quick-scripts.explainer/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/021-annotating-empty-parameters.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/021-annotating-empty-parameters.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/021-annotating-empty-parameters.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/021-annotating-empty-parameters.solution.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/022-all-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/022-all-types.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/022-all-types.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/022-all-types.solution.1.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/022-all-types.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/022-all-types.solution.2.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/023-optional-function-parameters.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/023-optional-function-parameters.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/023-optional-function-parameters.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/023-optional-function-parameters.solution.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/024-default-parameters.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/024-default-parameters.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/024-default-parameters.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/024-default-parameters.solution.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/025-object-literal-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/025-object-literal-types.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/025-object-literal-types.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/025-object-literal-types.solution.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/026-optional-property-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/026-optional-property-types.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/026-optional-property-types.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/026-optional-property-types.solution.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/027-type-keyword.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/027-type-keyword.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/027-type-keyword.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/027-type-keyword.solution.1.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/027-type-keyword.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/027-type-keyword.solution.2.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/027-type-keyword.solution.3.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/027-type-keyword.solution.3.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/028-arrays.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/028-arrays.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/028-arrays.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/028-arrays.solution.1.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/028-arrays.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/028-arrays.solution.2.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/029-arrays-of-objects.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/029-arrays-of-objects.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/029-arrays-of-objects.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/029-arrays-of-objects.solution.1.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/029-arrays-of-objects.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/029-arrays-of-objects.solution.2.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/029-arrays-of-objects.solution.3.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/029-arrays-of-objects.solution.3.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/029-arrays-of-objects.solution.4.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/029-arrays-of-objects.solution.4.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/030-rest-parameters-of-functions.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/030-rest-parameters-of-functions.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/031-tuples.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/031-tuples.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/031-tuples.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/031-tuples.solution.1.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/031-tuples.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/031-tuples.solution.2.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/032-optional-members-of-tuples.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/032-optional-members-of-tuples.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/032-optional-members-of-tuples.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/032-optional-members-of-tuples.solution.1.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/032-optional-members-of-tuples.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/032-optional-members-of-tuples.solution.2.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/032.5-any.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/032.5-any.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/032.5-any.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/032.5-any.solution.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/033-function-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/033-function-types.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/033-function-types.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/033-function-types.solution.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/034-functions-returning-void.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/034-functions-returning-void.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/034-functions-returning-void.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/034-functions-returning-void.solution.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/034.5-void-vs-undefined.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/034.5-void-vs-undefined.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/034.5-void-vs-undefined.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/034.5-void-vs-undefined.solution.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/035-pass-types-to-set.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/035-pass-types-to-set.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/035-pass-types-to-set.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/035-pass-types-to-set.solution.1.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/035-pass-types-to-set.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/035-pass-types-to-set.solution.2.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/036-pass-types-to-map.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/036-pass-types-to-map.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/036-pass-types-to-map.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/036-pass-types-to-map.solution.1.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/036-pass-types-to-map.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/036-pass-types-to-map.solution.2.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/036-pass-types-to-map.solution.3.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/036-pass-types-to-map.solution.3.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/036-pass-types-to-map.solution.4.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/036-pass-types-to-map.solution.4.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/038-type-async-functions.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/038-type-async-functions.problem.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/038-type-async-functions.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/038-type-async-functions.solution.1.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/038-type-async-functions.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/038-type-async-functions.solution.2.ts -------------------------------------------------------------------------------- /src/015-essential-types-and-annotations/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/015-essential-types-and-annotations/workshop.md -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/039-understand-the-ts-server.explainer.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/039-understand-the-ts-server.explainer.svg -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/039-understand-the-ts-server.explainer.ts: -------------------------------------------------------------------------------- 1 | // Explain Diagram 2 | -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/041-hovering-a-function-call.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/041-hovering-a-function-call.problem.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/041-hovering-a-function-call.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/041-hovering-a-function-call.solution.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/042-adding-tsdoc-comments-for-hovers.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/042-adding-tsdoc-comments-for-hovers.problem.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/042-adding-tsdoc-comments-for-hovers.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/042-adding-tsdoc-comments-for-hovers.solution.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/044-manually-triggering-autocomplete.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/044-manually-triggering-autocomplete.problem.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/044-manually-triggering-autocomplete.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/044-manually-triggering-autocomplete.solution.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/045-basics-of-errors.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/045-basics-of-errors.explainer.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/046-go-to-definition.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/046-go-to-definition.explainer.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/047-rename-symbol.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/047-rename-symbol.explainer.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/048-auto-import.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/048-auto-import.problem.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/048-auto-import.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/048-auto-import.solution.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/049-organize-imports.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/049-organize-imports.problem.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/049-organize-imports.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/049-organize-imports.solution.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/050-refactor.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/050-refactor.problem.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/050-refactor.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/050-refactor.solution.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/051-prettier-format-on-save.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/051-prettier-format-on-save.explainer.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/052-resetting-the-typescript-server.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/052-resetting-the-typescript-server.explainer.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/dummy-import-2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/dummy-import-2.ts -------------------------------------------------------------------------------- /src/016.5-ide-superpowers/dummy-import.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/016.5-ide-superpowers/dummy-import.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/053-introduction-to-unions.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/053-introduction-to-unions.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/053-introduction-to-unions.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/053-introduction-to-unions.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/053.5-unions-diagram.explainer.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/053.5-unions-diagram.explainer.svg -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/054-literal-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/054-literal-types.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/054-literal-types.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/054-literal-types.solution.1.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/054-literal-types.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/054-literal-types.solution.2.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/054.5-literal-type-assignability.explainer.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/054.5-literal-type-assignability.explainer.svg -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/055-combining-unions.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/055-combining-unions.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/055-combining-unions.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/055-combining-unions.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/056-how-big-can-a-union-be.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/056-how-big-can-a-union-be.explainer.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/057-literals-vs-wider-types.explainer.1.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/057-literals-vs-wider-types.explainer.1.svg -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/057-literals-vs-wider-types.explainer.2.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/057-literals-vs-wider-types.explainer.2.svg -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/057-literals-vs-wider-types.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/057-literals-vs-wider-types.explainer.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/058-narrowing-unions-with-typeof.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/058-narrowing-unions-with-typeof.explainer.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/059-narrowing-with-if-statements.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/059-narrowing-with-if-statements.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.1.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.1.svg -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.1.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.2.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.3.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.3.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.4.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.4.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.5.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/059-narrowing-with-if-statements.solution.5.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/060-narrowing-with-boolean-wont-work.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/060-narrowing-with-boolean-wont-work.explainer.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/061-map-has-doesnt-narrow-map-get.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/061-map-has-doesnt-narrow-map-get.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/061-map-has-doesnt-narrow-map-get.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/061-map-has-doesnt-narrow-map-get.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/062-throwing-errors-to-narrow.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/062-throwing-errors-to-narrow.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/062-throwing-errors-to-narrow.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/062-throwing-errors-to-narrow.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/064-narrowing-with-in-statements.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/064-narrowing-with-in-statements.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/064-narrowing-with-in-statements.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/064-narrowing-with-in-statements.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/065-introduction-to-unknown.explainer.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/065-introduction-to-unknown.explainer.svg -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/065-introduction-to-unknown.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/065-introduction-to-unknown.explainer.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/065.5-narrowing-with-instanceof-statements.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/065.5-narrowing-with-instanceof-statements.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/065.5-narrowing-with-instanceof-statements.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/065.5-narrowing-with-instanceof-statements.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/066-narrowing-unknown-to-a-value.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/066-narrowing-unknown-to-a-value.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/066-narrowing-unknown-to-a-value.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/066-narrowing-unknown-to-a-value.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/067-introduction-to-never.explainer.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/067-introduction-to-never.explainer.svg -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/067-introduction-to-never.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/067-introduction-to-never.explainer.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/067.5-never-array.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/067.5-never-array.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/067.5-never-array.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/067.5-never-array.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/068-returning-never-to-narrow.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/068-returning-never-to-narrow.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/068-returning-never-to-narrow.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/068-returning-never-to-narrow.solution.1.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/068-returning-never-to-narrow.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/068-returning-never-to-narrow.solution.2.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/071-narrowing-in-different-scopes.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/071-narrowing-in-different-scopes.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/071-narrowing-in-different-scopes.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/071-narrowing-in-different-scopes.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/072.5-reusable-type-guards.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/072.5-reusable-type-guards.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/072.5-reusable-type-guards.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/072.5-reusable-type-guards.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/074-intro-to-discriminated-unions.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/074-intro-to-discriminated-unions.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/074-intro-to-discriminated-unions.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/074-intro-to-discriminated-unions.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/075-destructuring-a-discriminated-union.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/075-destructuring-a-discriminated-union.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/075-destructuring-a-discriminated-union.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/075-destructuring-a-discriminated-union.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/077-narrowing-with-switch-true.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/077-narrowing-with-switch-true.explainer.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/078-destructuring-a-discriminated-tuple.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/078-destructuring-a-discriminated-tuple.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/078-destructuring-a-discriminated-tuple.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/078-destructuring-a-discriminated-tuple.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/079-discriminated-booleans.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/079-discriminated-booleans.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/079-discriminated-booleans.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/079-discriminated-booleans.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/080-adding-defaults-to-discriminated-union.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/080-adding-defaults-to-discriminated-union.problem.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/080-adding-defaults-to-discriminated-union.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/080-adding-defaults-to-discriminated-union.solution.ts -------------------------------------------------------------------------------- /src/018-unions-and-narrowing/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/018-unions-and-narrowing/workshop.md -------------------------------------------------------------------------------- /src/020-objects/081-extend-object-using-intersections.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/081-extend-object-using-intersections.problem.ts -------------------------------------------------------------------------------- /src/020-objects/081-extend-object-using-intersections.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/081-extend-object-using-intersections.solution.ts -------------------------------------------------------------------------------- /src/020-objects/082-extend-object-using-interfaces.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/082-extend-object-using-interfaces.problem.ts -------------------------------------------------------------------------------- /src/020-objects/082-extend-object-using-interfaces.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/082-extend-object-using-interfaces.solution.1.ts -------------------------------------------------------------------------------- /src/020-objects/082-extend-object-using-interfaces.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/082-extend-object-using-interfaces.solution.2.ts -------------------------------------------------------------------------------- /src/020-objects/082.5-extending-incompatible-properties.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/082.5-extending-incompatible-properties.problem.ts -------------------------------------------------------------------------------- /src/020-objects/082.5-extending-incompatible-properties.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/082.5-extending-incompatible-properties.solution.ts -------------------------------------------------------------------------------- /src/020-objects/083-compare-between-intersections-and-interfaces.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/083-compare-between-intersections-and-interfaces.explainer.ts -------------------------------------------------------------------------------- /src/020-objects/084-index-signatures.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/084-index-signatures.problem.ts -------------------------------------------------------------------------------- /src/020-objects/084-index-signatures.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/084-index-signatures.solution.1.ts -------------------------------------------------------------------------------- /src/020-objects/084-index-signatures.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/084-index-signatures.solution.2.ts -------------------------------------------------------------------------------- /src/020-objects/084-index-signatures.solution.3.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/084-index-signatures.solution.3.ts -------------------------------------------------------------------------------- /src/020-objects/084-index-signatures.solution.4.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/084-index-signatures.solution.4.ts -------------------------------------------------------------------------------- /src/020-objects/085-index-signatures-with-defined-keys.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/085-index-signatures-with-defined-keys.problem.ts -------------------------------------------------------------------------------- /src/020-objects/085-index-signatures-with-defined-keys.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/085-index-signatures-with-defined-keys.solution.1.ts -------------------------------------------------------------------------------- /src/020-objects/085-index-signatures-with-defined-keys.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/085-index-signatures-with-defined-keys.solution.2.ts -------------------------------------------------------------------------------- /src/020-objects/086-property-key-type.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/086-property-key-type.problem.ts -------------------------------------------------------------------------------- /src/020-objects/086-property-key-type.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/086-property-key-type.solution.ts -------------------------------------------------------------------------------- /src/020-objects/086.5-object-type.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/086.5-object-type.explainer.ts -------------------------------------------------------------------------------- /src/020-objects/087-record-type-with-union-as-keys.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/087-record-type-with-union-as-keys.problem.ts -------------------------------------------------------------------------------- /src/020-objects/087-record-type-with-union-as-keys.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/087-record-type-with-union-as-keys.solution.1.ts -------------------------------------------------------------------------------- /src/020-objects/087-record-type-with-union-as-keys.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/087-record-type-with-union-as-keys.solution.2.ts -------------------------------------------------------------------------------- /src/020-objects/088-declaration-merging-of-interfaces.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/088-declaration-merging-of-interfaces.problem.ts -------------------------------------------------------------------------------- /src/020-objects/088-declaration-merging-of-interfaces.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/088-declaration-merging-of-interfaces.solution.ts -------------------------------------------------------------------------------- /src/020-objects/089-pick-type-helper.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/089-pick-type-helper.problem.ts -------------------------------------------------------------------------------- /src/020-objects/089-pick-type-helper.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/089-pick-type-helper.solution.1.ts -------------------------------------------------------------------------------- /src/020-objects/089-pick-type-helper.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/089-pick-type-helper.solution.2.ts -------------------------------------------------------------------------------- /src/020-objects/091-omit-type-helper.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/091-omit-type-helper.problem.ts -------------------------------------------------------------------------------- /src/020-objects/091-omit-type-helper.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/091-omit-type-helper.solution.1.ts -------------------------------------------------------------------------------- /src/020-objects/091-omit-type-helper.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/091-omit-type-helper.solution.2.ts -------------------------------------------------------------------------------- /src/020-objects/092-no-autocomplete-on-omit.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/092-no-autocomplete-on-omit.explainer.ts -------------------------------------------------------------------------------- /src/020-objects/093-omit-cant-distribute.explainer.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/093-omit-cant-distribute.explainer.1.ts -------------------------------------------------------------------------------- /src/020-objects/093-omit-cant-distribute.explainer.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/093-omit-cant-distribute.explainer.2.ts -------------------------------------------------------------------------------- /src/020-objects/095-partial-type-helper.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/095-partial-type-helper.problem.ts -------------------------------------------------------------------------------- /src/020-objects/095-partial-type-helper.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/095-partial-type-helper.solution.ts -------------------------------------------------------------------------------- /src/020-objects/096-required-type-helper.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/096-required-type-helper.explainer.ts -------------------------------------------------------------------------------- /src/020-objects/096.5-common-keys-of-unions-of-objects.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/096.5-common-keys-of-unions-of-objects.problem.ts -------------------------------------------------------------------------------- /src/020-objects/096.5-common-keys-of-unions-of-objects.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/096.5-common-keys-of-unions-of-objects.solution.ts -------------------------------------------------------------------------------- /src/020-objects/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/020-objects/workshop.md -------------------------------------------------------------------------------- /src/028-mutability/097-let-and-const-inference.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/097-let-and-const-inference.problem.ts -------------------------------------------------------------------------------- /src/028-mutability/097-let-and-const-inference.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/097-let-and-const-inference.solution.1.ts -------------------------------------------------------------------------------- /src/028-mutability/097-let-and-const-inference.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/097-let-and-const-inference.solution.2.ts -------------------------------------------------------------------------------- /src/028-mutability/098-object-property-inference.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/098-object-property-inference.problem.ts -------------------------------------------------------------------------------- /src/028-mutability/098-object-property-inference.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/098-object-property-inference.solution.ts -------------------------------------------------------------------------------- /src/028-mutability/099-readonly-object-properties.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/099-readonly-object-properties.problem.ts -------------------------------------------------------------------------------- /src/028-mutability/099-readonly-object-properties.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/099-readonly-object-properties.solution.ts -------------------------------------------------------------------------------- /src/028-mutability/100-readonly-type-helper.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/100-readonly-type-helper.problem.ts -------------------------------------------------------------------------------- /src/028-mutability/100-readonly-type-helper.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/100-readonly-type-helper.solution.ts -------------------------------------------------------------------------------- /src/028-mutability/101-intro-to-as-const.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/101-intro-to-as-const.problem.ts -------------------------------------------------------------------------------- /src/028-mutability/101-intro-to-as-const.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/101-intro-to-as-const.solution.ts -------------------------------------------------------------------------------- /src/028-mutability/102-as-const-vs-object-freeze.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/102-as-const-vs-object-freeze.problem.ts -------------------------------------------------------------------------------- /src/028-mutability/102-as-const-vs-object-freeze.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/102-as-const-vs-object-freeze.solution.ts -------------------------------------------------------------------------------- /src/028-mutability/103-readonly-arrays.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/103-readonly-arrays.problem.ts -------------------------------------------------------------------------------- /src/028-mutability/103-readonly-arrays.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/103-readonly-arrays.solution.1.ts -------------------------------------------------------------------------------- /src/028-mutability/103-readonly-arrays.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/103-readonly-arrays.solution.2.ts -------------------------------------------------------------------------------- /src/028-mutability/104-readonly-arrays-assignability-to-mutable-arrays.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/104-readonly-arrays-assignability-to-mutable-arrays.explainer.ts -------------------------------------------------------------------------------- /src/028-mutability/104.5-fixing-unsafe-tuples.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/104.5-fixing-unsafe-tuples.problem.ts -------------------------------------------------------------------------------- /src/028-mutability/104.5-fixing-unsafe-tuples.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/104.5-fixing-unsafe-tuples.solution.ts -------------------------------------------------------------------------------- /src/028-mutability/105-includes-on-readonly-arrays.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/105-includes-on-readonly-arrays.explainer.ts -------------------------------------------------------------------------------- /src/028-mutability/106-as-const-to-make-functions-infer-a-tuple.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/106-as-const-to-make-functions-infer-a-tuple.problem.ts -------------------------------------------------------------------------------- /src/028-mutability/106-as-const-to-make-functions-infer-a-tuple.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/106-as-const-to-make-functions-infer-a-tuple.solution.1.ts -------------------------------------------------------------------------------- /src/028-mutability/106-as-const-to-make-functions-infer-a-tuple.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/106-as-const-to-make-functions-infer-a-tuple.solution.2.ts -------------------------------------------------------------------------------- /src/028-mutability/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/028-mutability/workshop.md -------------------------------------------------------------------------------- /src/030-classes/108-understand-classes.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/108-understand-classes.problem.ts -------------------------------------------------------------------------------- /src/030-classes/108-understand-classes.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/108-understand-classes.solution.1.ts -------------------------------------------------------------------------------- /src/030-classes/108-understand-classes.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/108-understand-classes.solution.2.ts -------------------------------------------------------------------------------- /src/030-classes/109-class-methods.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/109-class-methods.problem.ts -------------------------------------------------------------------------------- /src/030-classes/109-class-methods.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/109-class-methods.solution.1.ts -------------------------------------------------------------------------------- /src/030-classes/109-class-methods.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/109-class-methods.solution.2.ts -------------------------------------------------------------------------------- /src/030-classes/110-receiving-arguments-to-constructor.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/110-receiving-arguments-to-constructor.problem.ts -------------------------------------------------------------------------------- /src/030-classes/110-receiving-arguments-to-constructor.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/110-receiving-arguments-to-constructor.solution.1.ts -------------------------------------------------------------------------------- /src/030-classes/110-receiving-arguments-to-constructor.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/110-receiving-arguments-to-constructor.solution.2.ts -------------------------------------------------------------------------------- /src/030-classes/111-getters.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/111-getters.problem.ts -------------------------------------------------------------------------------- /src/030-classes/111-getters.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/111-getters.solution.ts -------------------------------------------------------------------------------- /src/030-classes/112-public-and-private-properties.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/112-public-and-private-properties.problem.ts -------------------------------------------------------------------------------- /src/030-classes/112-public-and-private-properties.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/112-public-and-private-properties.solution.1.ts -------------------------------------------------------------------------------- /src/030-classes/112-public-and-private-properties.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/112-public-and-private-properties.solution.2.ts -------------------------------------------------------------------------------- /src/030-classes/113-setters.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/113-setters.problem.ts -------------------------------------------------------------------------------- /src/030-classes/113-setters.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/113-setters.solution.ts -------------------------------------------------------------------------------- /src/030-classes/114-extending-other-classes.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/114-extending-other-classes.problem.ts -------------------------------------------------------------------------------- /src/030-classes/114-extending-other-classes.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/114-extending-other-classes.solution.ts -------------------------------------------------------------------------------- /src/030-classes/115-implementing-interfaces-or-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/115-implementing-interfaces-or-types.problem.ts -------------------------------------------------------------------------------- /src/030-classes/115-implementing-interfaces-or-types.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/115-implementing-interfaces-or-types.solution.1.ts -------------------------------------------------------------------------------- /src/030-classes/115-implementing-interfaces-or-types.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/115-implementing-interfaces-or-types.solution.2.ts -------------------------------------------------------------------------------- /src/030-classes/116-this-in-functions-and-objects.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/116-this-in-functions-and-objects.problem.ts -------------------------------------------------------------------------------- /src/030-classes/116-this-in-functions-and-objects.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/116-this-in-functions-and-objects.solution.ts -------------------------------------------------------------------------------- /src/030-classes/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/030-classes/workshop.md -------------------------------------------------------------------------------- /src/032-typescript-only-features/116.5-intro.explainer.ts: -------------------------------------------------------------------------------- 1 | // Introduce TS-only features 2 | -------------------------------------------------------------------------------- /src/032-typescript-only-features/117-parameter-properties.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/117-parameter-properties.explainer.ts -------------------------------------------------------------------------------- /src/032-typescript-only-features/118-enums.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/118-enums.problem.ts -------------------------------------------------------------------------------- /src/032-typescript-only-features/118-enums.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/118-enums.solution.1.ts -------------------------------------------------------------------------------- /src/032-typescript-only-features/118-enums.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/118-enums.solution.2.ts -------------------------------------------------------------------------------- /src/032-typescript-only-features/119-string-enums.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/119-string-enums.problem.ts -------------------------------------------------------------------------------- /src/032-typescript-only-features/119-string-enums.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/119-string-enums.solution.ts -------------------------------------------------------------------------------- /src/032-typescript-only-features/120-const-enums.explainer/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/120-const-enums.explainer/index.ts -------------------------------------------------------------------------------- /src/032-typescript-only-features/120-const-enums.explainer/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/120-const-enums.explainer/package.json -------------------------------------------------------------------------------- /src/032-typescript-only-features/120-const-enums.explainer/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/120-const-enums.explainer/tsconfig.json -------------------------------------------------------------------------------- /src/032-typescript-only-features/121-namespaces.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/121-namespaces.explainer.ts -------------------------------------------------------------------------------- /src/032-typescript-only-features/122-namespaces-can-declaration-merge.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/122-namespaces-can-declaration-merge.explainer.ts -------------------------------------------------------------------------------- /src/032-typescript-only-features/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/032-typescript-only-features/workshop.md -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/124.5-intro.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/124.5-intro.explainer.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/125-keyof.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/125-keyof.problem.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/125-keyof.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/125-keyof.solution.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/126-typeof-keyword.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/126-typeof-keyword.problem.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/126-typeof-keyword.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/126-typeof-keyword.solution.1.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/126-typeof-keyword.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/126-typeof-keyword.solution.2.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/128-create-runtime-values-from-types.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/128-create-runtime-values-from-types.explainer.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/129-classes-cross-value-and-type-world.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/129-classes-cross-value-and-type-world.problem.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/129-classes-cross-value-and-type-world.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/129-classes-cross-value-and-type-world.solution.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/130-this-crosses-value-and-type-world.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/130-this-crosses-value-and-type-world.explainer.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/132-parameters-type-helper.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/132-parameters-type-helper.problem.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/132-parameters-type-helper.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/132-parameters-type-helper.solution.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/133-return-type.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/133-return-type.problem.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/133-return-type.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/133-return-type.solution.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/134-awaited-type-helper.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/134-awaited-type-helper.problem.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/134-awaited-type-helper.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/134-awaited-type-helper.solution.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/135-indexed-access-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/135-indexed-access-types.problem.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/135-indexed-access-types.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/135-indexed-access-types.solution.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/136-pass-unions-to-indexed-access-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/136-pass-unions-to-indexed-access-types.problem.ts -------------------------------------------------------------------------------- /src/040-deriving-types-from-values/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/040-deriving-types-from-values/workshop.md -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/139-dont-annotate-too-much.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/139-dont-annotate-too-much.problem.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/139-dont-annotate-too-much.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/139-dont-annotate-too-much.solution.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/141-as-and-as-any.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/141-as-and-as-any.problem.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/141-as-and-as-any.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/141-as-and-as-any.solution.1.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/141-as-and-as-any.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/141-as-and-as-any.solution.2.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/142-global-typings-use-any.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/142-global-typings-use-any.problem.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/142-global-typings-use-any.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/142-global-typings-use-any.solution.1.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/142-global-typings-use-any.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/142-global-typings-use-any.solution.2.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/143-limits-of-as.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/143-limits-of-as.explainer.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/143.5-non-null-assertions.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/143.5-non-null-assertions.problem.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/143.5-non-null-assertions.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/143.5-non-null-assertions.solution.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/144-ts-ignore.explainer.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/144-ts-ignore.explainer.1.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/144-ts-ignore.explainer.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/144-ts-ignore.explainer.2.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/145-ts-expect-error.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/145-ts-expect-error.explainer.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/145.5-ts-nocheck.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/145.5-ts-nocheck.explainer.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/145.8-when-to-assert.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/145.8-when-to-assert.explainer.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/146-satisfies.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/146-satisfies.problem.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/146-satisfies.solution.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/146-satisfies.solution.svg -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/146-satisfies.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/146-satisfies.solution.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/146.7-satisfies-helps-narrow-literals.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/146.7-satisfies-helps-narrow-literals.explainer.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/148-satisfies-with-as-const.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/148-satisfies-with-as-const.problem.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/148-satisfies-with-as-const.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/148-satisfies-with-as-const.solution.ts -------------------------------------------------------------------------------- /src/045-annotations-and-assertions/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/045-annotations-and-assertions/workshop.md -------------------------------------------------------------------------------- /src/050-the-weird-parts/150-empty-object-type.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/150-empty-object-type.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/150-empty-object-type.solution.1.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/150-empty-object-type.solution.1.svg -------------------------------------------------------------------------------- /src/050-the-weird-parts/150-empty-object-type.solution.2.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/150-empty-object-type.solution.2.svg -------------------------------------------------------------------------------- /src/050-the-weird-parts/150-empty-object-type.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/150-empty-object-type.solution.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/151-truly-empty-object.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/151-truly-empty-object.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/151-truly-empty-object.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/151-truly-empty-object.solution.1.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/151-truly-empty-object.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/151-truly-empty-object.solution.2.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/152-excess-properties-warnings.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/152-excess-properties-warnings.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/152-excess-properties-warnings.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/152-excess-properties-warnings.solution.1.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/152-excess-properties-warnings.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/152-excess-properties-warnings.solution.2.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/152-excess-properties-warnings.solution.3.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/152-excess-properties-warnings.solution.3.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/152-excess-properties-warnings.solution.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/152-excess-properties-warnings.solution.svg -------------------------------------------------------------------------------- /src/050-the-weird-parts/153-excess-properties-warnings-in-functions.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/153-excess-properties-warnings-in-functions.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/153-excess-properties-warnings-in-functions.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/153-excess-properties-warnings-in-functions.solution.1.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/153-excess-properties-warnings-in-functions.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/153-excess-properties-warnings-in-functions.solution.2.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/154-object-keys-and-object-entries.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/154-object-keys-and-object-entries.explainer.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/154.6-iterating-over-objects.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/154.6-iterating-over-objects.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/154.6-iterating-over-objects.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/154.6-iterating-over-objects.solution.1.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/154.6-iterating-over-objects.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/154.6-iterating-over-objects.solution.2.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/154.6-iterating-over-objects.solution.3.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/154.6-iterating-over-objects.solution.3.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/154.6-iterating-over-objects.solution.4.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/154.6-iterating-over-objects.solution.4.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/154.8-evolving-any.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/154.8-evolving-any.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/154.8-evolving-any.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/154.8-evolving-any.solution.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/154.9-evolving-any-arrays.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/154.9-evolving-any-arrays.explainer.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/155-function-parameter-comparisons.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/155-function-parameter-comparisons.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/155-function-parameter-comparisons.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/155-function-parameter-comparisons.solution.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/156-unions-of-functions-with-object-params.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/156-unions-of-functions-with-object-params.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/156-unions-of-functions-with-object-params.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/156-unions-of-functions-with-object-params.solution.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/157-unions-of-functions.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/157-unions-of-functions.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/157-unions-of-functions.solution.1.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/157-unions-of-functions.solution.1.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/157-unions-of-functions.solution.2.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/157-unions-of-functions.solution.2.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/158-unions-of-function-return-types.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/158-unions-of-function-return-types.explainer.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/158.5-annotating-errors-a-function-throws.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/158.5-annotating-errors-a-function-throws.problem.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/158.5-annotating-errors-a-function-throws.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/158.5-annotating-errors-a-function-throws.solution.ts -------------------------------------------------------------------------------- /src/050-the-weird-parts/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/050-the-weird-parts/workshop.md -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/159-module-or-script.explainer/src/module-2.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | 3 | myModuleFunc(); 4 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/159-module-or-script.explainer/src/script-1.ts: -------------------------------------------------------------------------------- 1 | const myFunc = () => { 2 | console.log("Hello!"); 3 | }; 4 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/159-module-or-script.explainer/src/script-2.ts: -------------------------------------------------------------------------------- 1 | // I can use it without importing it! 2 | myFunc(); 3 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/160-module-detection-force.problem/src/script-1.ts: -------------------------------------------------------------------------------- 1 | const myFunc = () => { 2 | console.log("Hello!"); 3 | }; 4 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/160-module-detection-force.problem/src/script-2.ts: -------------------------------------------------------------------------------- 1 | // I can use it without importing it! 2 | 3 | // @ts-expect-error 4 | myFunc(); 5 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/160-module-detection-force.solution/src/script-2.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | myFunc(); 3 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/161-declaration-files.explainer/src/cant-use-runtime-code.d.ts: -------------------------------------------------------------------------------- 1 | export const myFunc = () => {}; 2 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/162-declaration-files-can-be-modules-or-scripts.explainer/src/treated-as-script.d.ts: -------------------------------------------------------------------------------- 1 | type GloballyAvailable = string; 2 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/164-declaration-files-can-be-used-to-type-js-files.problem/src/example.js: -------------------------------------------------------------------------------- 1 | export const myFunc = () => { 2 | return "Hello World!"; 3 | }; 4 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/164-declaration-files-can-be-used-to-type-js-files.solution/src/example.js: -------------------------------------------------------------------------------- 1 | export const myFunc = () => { 2 | return "Hello World!"; 3 | }; 4 | -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/167-declare-global.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/060-modules-scripts-and-declaration-files/167-declare-global.problem/package.json -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/167-declare-global.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/060-modules-scripts-and-declaration-files/167-declare-global.problem/src/index.ts -------------------------------------------------------------------------------- /src/060-modules-scripts-and-declaration-files/plan.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/060-modules-scripts-and-declaration-files/plan.md -------------------------------------------------------------------------------- /src/065-types-you-dont-control/172-lib-d-ts.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/172-lib-d-ts.problem/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/172-lib-d-ts.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/172-lib-d-ts.problem/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/172-lib-d-ts.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/172-lib-d-ts.problem/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/172-lib-d-ts.solution.1/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/172-lib-d-ts.solution.1/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/172-lib-d-ts.solution.1/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/172-lib-d-ts.solution.1/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/172-lib-d-ts.solution.1/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/172-lib-d-ts.solution.1/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/172-lib-d-ts.solution.2/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/172-lib-d-ts.solution.2/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/172-lib-d-ts.solution.2/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/172-lib-d-ts.solution.2/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/172-lib-d-ts.solution.2/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/172-lib-d-ts.solution.2/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/173-lib-dom.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/173-lib-dom.problem/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/173-lib-dom.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/173-lib-dom.problem/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/173-lib-dom.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/173-lib-dom.problem/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/173-lib-dom.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/173-lib-dom.solution/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/173-lib-dom.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/173-lib-dom.solution/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/173-lib-dom.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/173-lib-dom.solution/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174-lib-dom-iterable.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174-lib-dom-iterable.problem/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174-lib-dom-iterable.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174-lib-dom-iterable.problem/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174-lib-dom-iterable.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174-lib-dom-iterable.problem/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174-lib-dom-iterable.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174-lib-dom-iterable.solution/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174-lib-dom-iterable.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174-lib-dom-iterable.solution/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174-lib-dom-iterable.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174-lib-dom-iterable.solution/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174.5-modifying-window.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174.5-modifying-window.problem/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174.5-modifying-window.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174.5-modifying-window.problem/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174.5-modifying-window.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174.5-modifying-window.problem/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174.5-modifying-window.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174.5-modifying-window.solution/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174.5-modifying-window.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174.5-modifying-window.solution/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174.5-modifying-window.solution/src/window.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174.5-modifying-window.solution/src/window.d.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/174.5-modifying-window.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/174.5-modifying-window.solution/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175-definitely-typed.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175-definitely-typed.problem/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175-definitely-typed.problem/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175-definitely-typed.problem/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175-definitely-typed.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175-definitely-typed.problem/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175-definitely-typed.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175-definitely-typed.problem/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175-definitely-typed.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175-definitely-typed.solution/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175-definitely-typed.solution/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175-definitely-typed.solution/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175-definitely-typed.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175-definitely-typed.solution/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175-definitely-typed.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175-definitely-typed.solution/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.2-types-node.explainer/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175.2-types-node.explainer/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.2-types-node.explainer/src/index.ts: -------------------------------------------------------------------------------- 1 | // Typed by @types/node! 2 | process; 3 | -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.2-types-node.explainer/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175.2-types-node.explainer/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.5-modifying-process-env.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175.5-modifying-process-env.problem/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.5-modifying-process-env.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175.5-modifying-process-env.problem/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.5-modifying-process-env.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175.5-modifying-process-env.problem/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.5-modifying-process-env.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175.5-modifying-process-env.solution/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.5-modifying-process-env.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175.5-modifying-process-env.solution/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.5-modifying-process-env.solution/src/process.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175.5-modifying-process-env.solution/src/process.d.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/175.5-modifying-process-env.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/175.5-modifying-process-env.solution/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176-types-that-ship-with-libraries.explainer/src/index.ts: -------------------------------------------------------------------------------- 1 | import { z } from "zod"; 2 | 3 | const user = z.object({ 4 | name: z.string(), 5 | }); 6 | -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.2-declare-module.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.2-declare-module.problem/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.2-declare-module.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.2-declare-module.problem/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.2-declare-module.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.2-declare-module.problem/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.2-declare-module.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.2-declare-module.solution/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.2-declare-module.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.2-declare-module.solution/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.2-declare-module.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.2-declare-module.solution/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.3-wildcard-in-declare-module.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.3-wildcard-in-declare-module.problem/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.3-wildcard-in-declare-module.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.3-wildcard-in-declare-module.problem/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.3-wildcard-in-declare-module.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.3-wildcard-in-declare-module.problem/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.3-wildcard-in-declare-module.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.3-wildcard-in-declare-module.solution/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.3-wildcard-in-declare-module.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.3-wildcard-in-declare-module.solution/src/index.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.3-wildcard-in-declare-module.solution/src/png.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.3-wildcard-in-declare-module.solution/src/png.d.ts -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.5-skip-lib-check-true.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.5-skip-lib-check-true.problem/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.5-skip-lib-check-true.problem/src/index.d.ts: -------------------------------------------------------------------------------- 1 | export const myFunc = () => {}; 2 | -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.5-skip-lib-check-true.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.5-skip-lib-check-true.problem/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.5-skip-lib-check-true.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.5-skip-lib-check-true.solution/package.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.5-skip-lib-check-true.solution/src/index.d.ts: -------------------------------------------------------------------------------- 1 | export const myFunc = () => {}; 2 | -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.5-skip-lib-check-true.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/176.5-skip-lib-check-true.solution/tsconfig.json -------------------------------------------------------------------------------- /src/065-types-you-dont-control/176.7-should-you-use-declaration-files-to-store-your-types.explainer/src/types.d.ts: -------------------------------------------------------------------------------- 1 | export type Example = string; 2 | -------------------------------------------------------------------------------- /src/065-types-you-dont-control/177-declare-module-for-overriding-third-party-libraries.explainer/src/zod.d.ts: -------------------------------------------------------------------------------- 1 | declare module "zod" { 2 | const z: any; 3 | } 4 | -------------------------------------------------------------------------------- /src/065-types-you-dont-control/plan.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/065-types-you-dont-control/plan.md -------------------------------------------------------------------------------- /src/080-configuring-typescript/178-my-recommended-tsconfig-base.explainer/notes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/178-my-recommended-tsconfig-base.explainer/notes.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/178.5-isolated-modules.explainer/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/178.5-isolated-modules.explainer/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/178.5-isolated-modules.explainer/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/178.5-isolated-modules.explainer/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/178.5-isolated-modules.explainer/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/178.5-isolated-modules.explainer/src/index.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/178.5-isolated-modules.explainer/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/178.5-isolated-modules.explainer/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/179-no-unchecked-indexed-access.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179-no-unchecked-indexed-access.problem/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/179-no-unchecked-indexed-access.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179-no-unchecked-indexed-access.problem/src/index.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/179-no-unchecked-indexed-access.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179-no-unchecked-indexed-access.problem/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/179-no-unchecked-indexed-access.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179-no-unchecked-indexed-access.solution/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/179-no-unchecked-indexed-access.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179-no-unchecked-indexed-access.solution/src/index.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/179-no-unchecked-indexed-access.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179-no-unchecked-indexed-access.solution/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/179.5-no-emit.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179.5-no-emit.problem/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/179.5-no-emit.problem/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179.5-no-emit.problem/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/179.5-no-emit.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179.5-no-emit.problem/src/index.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/179.5-no-emit.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179.5-no-emit.problem/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/179.5-no-emit.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179.5-no-emit.solution/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/179.5-no-emit.solution/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179.5-no-emit.solution/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/179.5-no-emit.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179.5-no-emit.solution/src/index.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/179.5-no-emit.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/179.5-no-emit.solution/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/180-module-resolution-bundler-or-nodenext.explainer/src/example.ts: -------------------------------------------------------------------------------- 1 | export const example = () => { 2 | return "hello!"; 3 | }; 4 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/181-lib-vs-target.explainer/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181-lib-vs-target.explainer/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/181-lib-vs-target.explainer/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181-lib-vs-target.explainer/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/181-lib-vs-target.explainer/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181-lib-vs-target.explainer/src/index.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/181-lib-vs-target.explainer/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181-lib-vs-target.explainer/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.2-creating-declaration-files.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.2-creating-declaration-files.problem/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.2-creating-declaration-files.problem/src/index.ts: -------------------------------------------------------------------------------- 1 | export const myFunc = (input: string) => {}; 2 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.2-creating-declaration-files.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.2-creating-declaration-files.problem/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.2-creating-declaration-files.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.2-creating-declaration-files.solution/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.2-creating-declaration-files.solution/src/index.ts: -------------------------------------------------------------------------------- 1 | export const myFunc = (input: string) => {}; 2 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.4-declaration-maps.problem/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.problem/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.4-declaration-maps.problem/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.problem/src/index.ts: -------------------------------------------------------------------------------- 1 | export const myFunc = (input: string) => {}; 2 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.problem/test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.4-declaration-maps.problem/test.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.4-declaration-maps.problem/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.4-declaration-maps.solution/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.solution/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.4-declaration-maps.solution/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.solution/src/index.ts: -------------------------------------------------------------------------------- 1 | export const myFunc = (input: string) => {}; 2 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.solution/test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.4-declaration-maps.solution/test.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/181.4-declaration-maps.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/181.4-declaration-maps.solution/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/182-jsx.problem/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.problem/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/182-jsx.problem/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.problem/src/index.tsx: -------------------------------------------------------------------------------- 1 | const MyComponent = () => { 2 | return
; 3 | }; 4 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/182-jsx.problem/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.solution.1/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/182-jsx.solution.1/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.solution.1/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/182-jsx.solution.1/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.solution.1/src/index.tsx: -------------------------------------------------------------------------------- 1 | const MyComponent = () => { 2 | return
; 3 | }; 4 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.solution.1/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/182-jsx.solution.1/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.solution.2/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/182-jsx.solution.2/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.solution.2/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/182-jsx.solution.2/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.solution.2/src/index.tsx: -------------------------------------------------------------------------------- 1 | const MyComponent = () => { 2 | return
; 3 | }; 4 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/182-jsx.solution.2/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/182-jsx.solution.2/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/183-multiple-tsconfig-json-files.problem/src/server.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | document; 3 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/183-multiple-tsconfig-json-files.solution/src/server/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | document; 3 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/184-globals-are-tied-to-a-single-tsconfig.explainer/src/server/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | document; 3 | 4 | console.log(ONLY_AVAILABLE_ON_SERVER); 5 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/184-globals-are-tied-to-a-single-tsconfig.explainer/src/server/server.d.ts: -------------------------------------------------------------------------------- 1 | declare const ONLY_AVAILABLE_ON_SERVER: string; 2 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/185-extending-from-other-tsconfig-json-files.problem/src/server/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | document; 3 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/185-extending-from-other-tsconfig-json-files.solution/src/client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json" 3 | } 4 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/185-extending-from-other-tsconfig-json-files.solution/src/server/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | document; 3 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.problem/checklist.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.problem/checklist.md -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.problem/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.problem/src/client/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.problem/src/client/index.ts -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.problem/src/server/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | document; 3 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.problem/tsconfig.base.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.problem/tsconfig.base.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.1/checklist.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.1/checklist.md -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.1/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.1/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.1/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.1/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.1/src/server/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | document; 3 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.1/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.1/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.2/checklist.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.2/checklist.md -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.2/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.2/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.2/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.2/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.2/src/server/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | document; 3 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.2/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.2/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.3/checklist.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.3/checklist.md -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.3/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.3/package.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.3/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.3/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.3/src/server/index.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error 2 | document; 3 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/186-project-references.solution.3/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/186-project-references.solution.3/tsconfig.json -------------------------------------------------------------------------------- /src/080-configuring-typescript/190-setting-up-types-for-node.explainer/src/index.ts: -------------------------------------------------------------------------------- 1 | console.log("Hello!"); 2 | -------------------------------------------------------------------------------- /src/080-configuring-typescript/plan.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/080-configuring-typescript/plan.md -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/193-intro.explainer.ts: -------------------------------------------------------------------------------- 1 | // Explain the differences between CJS and ESM 2 | -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.problem/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.problem/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.problem/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.problem/src/esm-module.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.problem/src/esm-module.js -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.problem/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.problem/src/index.js -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.solution/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.solution/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.solution/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.solution/src/esm-module.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.solution/src/esm-module.mjs -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.solution/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/194-cant-import-esm-into-cjs.solution/src/index.js -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/195-can-import-cjs-into-esm.explainer/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/195-can-import-cjs-into-esm.explainer/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/195-can-import-cjs-into-esm.explainer/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/195-can-import-cjs-into-esm.explainer/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/195-can-import-cjs-into-esm.explainer/src/cjs-module.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/195-can-import-cjs-into-esm.explainer/src/cjs-module.cjs -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/195-can-import-cjs-into-esm.explainer/src/index.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/195-can-import-cjs-into-esm.explainer/src/index.mjs -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196-mts-files.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196-mts-files.problem/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196-mts-files.problem/src/esm-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196-mts-files.problem/src/esm-module.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196-mts-files.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196-mts-files.problem/src/index.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196-mts-files.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196-mts-files.problem/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196-mts-files.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196-mts-files.solution/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196-mts-files.solution/src/esm-module.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196-mts-files.solution/src/esm-module.mts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196-mts-files.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196-mts-files.solution/src/index.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196-mts-files.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196-mts-files.solution/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/.gitignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/index.html -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/src/example.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/src/example.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/src/run.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/src/run.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.1/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/.gitignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/index.html -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/src/example.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/src/example.mts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/src/run.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/src/run.mts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/196.5-browsers-cant-use-cjs.explainer.2/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/197-verbatim-module-syntax.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/197-verbatim-module-syntax.problem/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/197-verbatim-module-syntax.problem/src/cjs-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/197-verbatim-module-syntax.problem/src/cjs-module.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/197-verbatim-module-syntax.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/197-verbatim-module-syntax.problem/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/197-verbatim-module-syntax.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/197-verbatim-module-syntax.solution/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/197-verbatim-module-syntax.solution/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/197-verbatim-module-syntax.solution/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/197-verbatim-module-syntax.solution/src/cjs-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/197-verbatim-module-syntax.solution/src/cjs-module.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/197-verbatim-module-syntax.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/197-verbatim-module-syntax.solution/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/198-treat-ts-files-as-esm.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/198-treat-ts-files-as-esm.problem/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/198-treat-ts-files-as-esm.problem/src/esm-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/198-treat-ts-files-as-esm.problem/src/esm-module.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/198-treat-ts-files-as-esm.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/198-treat-ts-files-as-esm.problem/src/index.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/198-treat-ts-files-as-esm.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/198-treat-ts-files-as-esm.problem/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/198-treat-ts-files-as-esm.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/198-treat-ts-files-as-esm.solution/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/198-treat-ts-files-as-esm.solution/src/esm-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/198-treat-ts-files-as-esm.solution/src/esm-module.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/198-treat-ts-files-as-esm.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/198-treat-ts-files-as-esm.solution/src/index.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/198-treat-ts-files-as-esm.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/198-treat-ts-files-as-esm.solution/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/200-import-syntax-for-cts.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/200-import-syntax-for-cts.problem/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/200-import-syntax-for-cts.problem/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/200-import-syntax-for-cts.problem/src/index.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/200-import-syntax-for-cts.problem/src/other-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/200-import-syntax-for-cts.problem/src/other-module.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/200-import-syntax-for-cts.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/200-import-syntax-for-cts.problem/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/200-import-syntax-for-cts.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/200-import-syntax-for-cts.solution/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/200-import-syntax-for-cts.solution/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/200-import-syntax-for-cts.solution/src/index.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/200-import-syntax-for-cts.solution/src/other-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/200-import-syntax-for-cts.solution/src/other-module.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/200-import-syntax-for-cts.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/200-import-syntax-for-cts.solution/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.5-import-type.problem/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/202.5-import-type.problem/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.5-import-type.problem/src/esm-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/202.5-import-type.problem/src/esm-module.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.5-import-type.problem/src/module-containing-types.ts: -------------------------------------------------------------------------------- 1 | export type Example = string; 2 | -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.5-import-type.problem/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/202.5-import-type.problem/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.5-import-type.solution/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/202.5-import-type.solution/package.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.5-import-type.solution/src/esm-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/202.5-import-type.solution/src/esm-module.ts -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.5-import-type.solution/src/module-containing-types.ts: -------------------------------------------------------------------------------- 1 | export type Example = string; 2 | -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.5-import-type.solution/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/202.5-import-type.solution/tsconfig.json -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.6-should-i-use-cjs-or-esm.explainer.ts: -------------------------------------------------------------------------------- 1 | // Should you use CJS or ESM? 2 | -------------------------------------------------------------------------------- /src/082-cjs-vs-esm/202.7-applications-vs-libraries.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/082-cjs-vs-esm/202.7-applications-vs-libraries.explainer.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/203-domain-modelling-in-typescript.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/203-domain-modelling-in-typescript.explainer.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/204-intro-to-generic-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/204-intro-to-generic-types.problem.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/204-intro-to-generic-types.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/204-intro-to-generic-types.solution.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/205-multiple-type-parameters.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/205-multiple-type-parameters.problem.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/205-multiple-type-parameters.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/205-multiple-type-parameters.solution.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/206-result-type.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/206-result-type.explainer.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/207-default-type-parameters.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/207-default-type-parameters.problem.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/207-default-type-parameters.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/207-default-type-parameters.solution.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/208-type-parameter-constraints.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/208-type-parameter-constraints.problem.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/208-type-parameter-constraints.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/208-type-parameter-constraints.solution.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/209-tighter-version-of-omit.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/209-tighter-version-of-omit.problem.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/209-tighter-version-of-omit.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/209-tighter-version-of-omit.solution.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/210-template-literal-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/210-template-literal-types.problem.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/210-template-literal-types.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/210-template-literal-types.solution.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/212-mapped-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/212-mapped-types.problem.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/212-mapped-types.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/212-mapped-types.solution.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/213-as-in-mapped-types.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/213-as-in-mapped-types.problem.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/213-as-in-mapped-types.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/213-as-in-mapped-types.solution.ts -------------------------------------------------------------------------------- /src/083-designing-your-types/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/083-designing-your-types/workshop.md -------------------------------------------------------------------------------- /src/085-the-utils-folder/214-intro-to-the-utils-folder.explainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/214-intro-to-the-utils-folder.explainer.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/215-generic-functions-without-inference.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/215-generic-functions-without-inference.problem.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/215-generic-functions-without-inference.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/215-generic-functions-without-inference.solution.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/217-generic-functions-with-inference.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/217-generic-functions-with-inference.problem.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/217-generic-functions-with-inference.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/217-generic-functions-with-inference.solution.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/221-type-predicates.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/221-type-predicates.problem.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/221-type-predicates.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/221-type-predicates.solution.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/222-assertion-functions.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/222-assertion-functions.problem.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/222-assertion-functions.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/222-assertion-functions.solution.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/223-function-overloads.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/223-function-overloads.problem.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/223-function-overloads.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/223-function-overloads.solution.ts -------------------------------------------------------------------------------- /src/085-the-utils-folder/workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/085-the-utils-folder/workshop.md -------------------------------------------------------------------------------- /src/090-the-style-guide/224-hungarian-notation.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/224-hungarian-notation.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/225-where-to-put-your-types.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/225-where-to-put-your-types.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/226-colocation-of-types.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/226-colocation-of-types.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/227-setting-up-eslint.explainer.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/228-explicit-any-rule-or-not.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/228-explicit-any-rule-or-not.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/229-explicit-return-types-or-not.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/229-explicit-return-types-or-not.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/230-any-vs-ts-ignore-vs-ts-expect-error.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/230-any-vs-ts-ignore-vs-ts-expect-error.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/231-dont-declare-type-and-value-with-the-same-name.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/231-dont-declare-type-and-value-with-the-same-name.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/232-types-vs-interfaces.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/232-types-vs-interfaces.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/233-dont-use-uppercase-function-object-string-boolean-as-types.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/233-dont-use-uppercase-function-object-string-boolean-as-types.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/234-dont-make-your-types-globally-available-types.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/234-dont-make-your-types-globally-available-types.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/235-how-strict-should-you-configure-ts.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/235-how-strict-should-you-configure-ts.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/236-dont-unnecessarily-widen-types.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/236-dont-unnecessarily-widen-types.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/090-the-style-guide/plan.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/090-the-style-guide/plan.md -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/237-strict-file-by-file-vs-ramp-up-strictness.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/237-strict-file-by-file-vs-ramp-up-strictness.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/238-dependencies-first.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/238-dependencies-first.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/239-typing-third-party-modules.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/239-typing-third-party-modules.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/240-madge.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/240-madge.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/241-understanding-the-structure-of-ts-errors.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/241-understanding-the-structure-of-ts-errors.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/242-experiments-with-jsdoc.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/242-experiments-with-jsdoc.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/243-jsdoc-cannot-pass-types-to-functions.problem.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/243-jsdoc-cannot-pass-types-to-functions.solution.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/095-migrating-from-javascript/plan.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/src/095-migrating-from-javascript/plan.md -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/tsconfig.json -------------------------------------------------------------------------------- /vite.config.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/vite.config.mts -------------------------------------------------------------------------------- /workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/volodymyrhryhorchuk2/total-typescript/HEAD/workshop.md --------------------------------------------------------------------------------