From f64e68efd9f1455ce996f3d2cb61fa82028aafdc Mon Sep 17 00:00:00 2001 From: Matt Pocock Date: Tue, 29 Aug 2023 12:51:37 +0100 Subject: [PATCH] 2023-08-29T11:51:37.091Z --- .../102-typing-this-in-functions.problem.ts} | 0 .../102-typing-this-in-functions.solution.ts} | 0 .../103-can-you-type-this-in-functions.problem.ts} | 0 .../103-can-you-type-this-in-functions.solution.ts} | 0 ...nums.problem.ts => 104-auto-assignation-in-classes.problem.ts} | 0 ...ms.solution.ts => 104-auto-assignation-in-classes.solution.ts} | 0 .../{105-namespaces.problem.ts => 105-enums.problem.ts} | 0 .../{105-namespaces.solution.ts => 105-enums.solution.ts} | 0 ...d-as-types-or-values.problem.ts => 106-const-enums.problem.ts} | 0 ...as-types-or-values.solution.ts => 106-const-enums.solution.ts} | 0 ...can-declaration-merge.problem.ts => 107-namespaces.problem.ts} | 0 ...n-declaration-merge.solution.ts => 107-namespaces.solution.ts} | 0 ...s => 108-namespaces-can-be-used-as-types-or-values.problem.ts} | 0 ... => 108-namespaces-can-be-used-as-types-or-values.solution.ts} | 0 ...problem.ts => 109-namespaces-can-declaration-merge.problem.ts} | 0 ...lution.ts => 109-namespaces-can-declaration-merge.solution.ts} | 0 ...interfaces-within-namespaces-can-declaration-merge.problem.ts} | 0 ...nterfaces-within-namespaces-can-declaration-merge.solution.ts} | 0 .../111-should-you-use-namespaces.problem.ts} | 0 .../111-should-you-use-namespaces.solution.ts} | 0 .../{112-as-and-as-any.problem.ts => 112-any.problem.ts} | 0 .../{112-as-and-as-any.solution.ts => 112-any.solution.ts} | 0 ...its-of-as.problem.ts => 113-global-typings-use-any.problem.ts} | 0 ...s-of-as.solution.ts => 113-global-typings-use-any.solution.ts} | 0 .../{114-satisfies.problem.ts => 114-as-and-as-any.problem.ts} | 0 .../{114-satisfies.solution.ts => 114-as-and-as-any.solution.ts} | 0 ...s-a-function-throws.problem.ts => 115-limits-of-as.problem.ts} | 0 ...a-function-throws.solution.ts => 115-limits-of-as.solution.ts} | 0 ...ss-properties-warnings.problem.ts => 116-satisfies.problem.ts} | 0 ...-properties-warnings.solution.ts => 116-satisfies.solution.ts} | 0 ...blem.ts => 117-annotating-errors-a-function-throws.problem.ts} | 0 ...ion.ts => 117-annotating-errors-a-function-throws.solution.ts} | 0 ...yping.problem.ts => 118-excess-properties-warnings.problem.ts} | 0 ...ing.solution.ts => 118-excess-properties-warnings.solution.ts} | 0 ...g.problem.ts => 119-object-keys-and-object-entries.problem.ts} | 0 ...solution.ts => 119-object-keys-and-object-entries.solution.ts} | 0 ...ons.problem.ts => 120-structural-vs-nominal-typing.problem.ts} | 0 ...s.solution.ts => 120-structural-vs-nominal-typing.solution.ts} | 0 ...roblem.ts => 121-how-enums-break-structural-typing.problem.ts} | 0 ...ution.ts => 121-how-enums-break-structural-typing.solution.ts} | 0 .../122-unions-of-functions.problem.ts} | 0 .../122-unions-of-functions.solution.ts} | 0 .../123-empty-object-type.problem.ts} | 0 .../123-empty-object-type.solution.ts} | 0 ...ue-and-type-world.problem.ts => 124-typeof-keyword.problem.ts} | 0 ...-and-type-world.solution.ts => 124-typeof-keyword.solution.ts} | 0 ...problem.ts => 125-create-runtime-values-from-types.problem.ts} | 0 ...lution.ts => 125-create-runtime-values-from-types.solution.ts} | 0 ...> 126-classes-and-enums-cross-value-and-type-world.problem.ts} | 0 ... 126-classes-and-enums-cross-value-and-type-world.solution.ts} | 0 ...roblem.ts => 127-this-crosses-value-and-type-world.problem.ts} | 0 ...ution.ts => 127-this-crosses-value-and-type-world.solution.ts} | 0 ...indexed-access-types.problem.ts => 128-return-type.problem.ts} | 0 ...dexed-access-types.solution.ts => 128-return-type.solution.ts} | 0 ...ess-types.problem.ts => 129-parameters-type-helper.problem.ts} | 0 ...s-types.solution.ts => 129-parameters-type-helper.solution.ts} | 0 ...nto-an-indexed-access-type.problem.ts => 130-keyof.problem.ts} | 0 ...o-an-indexed-access-type.solution.ts => 130-keyof.solution.ts} | 0 ...onst-object.problem.ts => 131-indexed-access-types.problem.ts} | 0 ...st-object.solution.ts => 131-indexed-access-types.solution.ts} | 0 ...blem.ts => 132-pass-unions-to-indexed-access-types.problem.ts} | 0 ...ion.ts => 132-pass-unions-to-indexed-access-types.solution.ts} | 0 ...m.ts => 133-pass-keyof-into-an-indexed-access-type.problem.ts} | 0 ....ts => 133-pass-keyof-into-an-indexed-access-type.solution.ts} | 0 ...blem.ts => 134-create-an-enum-from-as-const-object.problem.ts} | 0 ...ion.ts => 134-create-an-enum-from-as-const-object.solution.ts} | 0 .../135-create-a-union-from-an-as-const-array.problem.ts} | 0 .../135-create-a-union-from-an-as-const-array.solution.ts} | 0 .../136-should-i-use-enums-or-as-const.problem.ts} | 0 .../136-should-i-use-enums-or-as-const.solution.ts} | 0 .../137-using-numeric-comparators-on-enums.problem.ts} | 0 .../137-using-numeric-comparators-on-enums.solution.ts} | 0 ...{138-cjs-vs-esm.problem.ts => 138-module-or-script.problem.ts} | 0 ...38-cjs-vs-esm.solution.ts => 138-module-or-script.solution.ts} | 0 ...-nodenext.problem.ts => 139-module-detection-force.problem.ts} | 0 ...odenext.solution.ts => 139-module-detection-force.solution.ts} | 0 ...claration-files.problem.ts => 140-isolated-modules.problem.ts} | 0 ...aration-files.solution.ts => 140-isolated-modules.solution.ts} | 0 ...1-skip-lib-check-true.problem.ts => 141-cjs-vs-esm.problem.ts} | 0 ...skip-lib-check-true.solution.ts => 141-cjs-vs-esm.solution.ts} | 0 ...em.ts => 142-module-resolution-bundler-or-nodenext.problem.ts} | 0 ...n.ts => 142-module-resolution-bundler-or-nodenext.solution.ts} | 0 ...-type-js-files.problem.ts => 143-declaration-files.problem.ts} | 0 ...ype-js-files.solution.ts => 143-declaration-files.solution.ts} | 0 ...ration-files.problem.ts => 144-skip-lib-check-true.problem.ts} | 0 ...tion-files.solution.ts => 144-skip-lib-check-true.solution.ts} | 0 .../145-declaration-files-can-be-modules-or-scripts.problem.ts} | 0 .../145-declaration-files-can-be-modules-or-scripts.solution.ts} | 0 ...146-declaration-files-can-be-used-to-type-js-files.problem.ts} | 0 ...46-declaration-files-can-be-used-to-type-js-files.solution.ts} | 0 .../147-should-you-use-declaration-files.problem.ts} | 0 .../147-should-you-use-declaration-files.solution.ts} | 0 .../148-resolve-json-module.problem.ts} | 0 .../148-resolve-json-module.solution.ts} | 0 .../149-json-d-ts-files.problem.ts} | 0 .../149-json-d-ts-files.solution.ts} | 0 ...roblem.ts => 150-ambient-context-and-declare-const.problem.ts} | 0 ...ution.ts => 150-ambient-context-and-declare-const.solution.ts} | 0 .../151-declare-global.problem.ts} | 0 .../151-declare-global.solution.ts} | 0 .../152-globals-are-tied-to-a-single-tsconfig.problem.ts} | 0 .../152-globals-are-tied-to-a-single-tsconfig.solution.ts} | 0 .../153-declare-global-or-declaration-file.problem.ts} | 0 .../153-declare-global-or-declaration-file.solution.ts} | 0 .../154-declare-module.problem.ts} | 0 .../154-declare-module.solution.ts} | 0 .../155-wildcard-in-declare-module.problem.ts} | 0 .../155-wildcard-in-declare-module.solution.ts} | 0 ...eclare-module-for-overriding-third-party-libraries.problem.ts} | 0 ...clare-module-for-overriding-third-party-libraries.solution.ts} | 0 ...hat-ship-with-libraries.problem.ts => 157-lib-d-ts.problem.ts} | 0 ...t-ship-with-libraries.solution.ts => 157-lib-d-ts.solution.ts} | 0 ....problem.ts => 158-using-target-to-change-lib-d-ts.problem.ts} | 0 ...olution.ts => 158-using-target-to-change-lib-d-ts.solution.ts} | 0 ...odifying-globalthis.problem.ts => 159-lib-dom-d-ts.problem.ts} | 0 ...ifying-globalthis.solution.ts => 159-lib-dom-d-ts.solution.ts} | 0 ...ng-process-env.problem.ts => 160-third-party-types.problem.ts} | 0 ...-process-env.solution.ts => 160-third-party-types.solution.ts} | 0 .../161-type-roots-in-tsconfig.problem.ts} | 0 .../161-type-roots-in-tsconfig.solution.ts} | 0 .../162-types-that-ship-with-libraries.problem.ts} | 0 .../162-types-that-ship-with-libraries.solution.ts} | 0 .../163-modifying-window.problem.ts} | 0 .../163-modifying-window.solution.ts} | 0 .../164-modifying-globalthis.problem.ts} | 0 .../164-modifying-globalthis.solution.ts} | 0 .../165-modifying-process-env.problem.ts} | 0 .../165-modifying-process-env.solution.ts} | 0 ...t.problem.ts => 166-domain-modelling-in-typescript.problem.ts} | 0 ...solution.ts => 166-domain-modelling-in-typescript.solution.ts} | 0 ...eral-types.problem.ts => 167-intro-to-helper-types.problem.ts} | 0 ...al-types.solution.ts => 167-intro-to-helper-types.solution.ts} | 0 ...l-types.problem.ts => 168-multiple-type-parameters.problem.ts} | 0 ...types.solution.ts => 168-multiple-type-parameters.solution.ts} | 0 .../169-default-type-parameters.problem.ts} | 0 .../169-default-type-parameters.solution.ts} | 0 .../170-type-helper-constraints.problem.ts} | 0 .../170-type-helper-constraints.solution.ts} | 0 .../171-tighter-version-of-omit.problem.ts} | 0 .../171-tighter-version-of-omit.solution.ts} | 0 .../172-template-literal-types.problem.ts} | 0 .../172-template-literal-types.solution.ts} | 0 .../173-passing-unions-to-template-literal-types.problem.ts} | 0 .../173-passing-unions-to-template-literal-types.solution.ts} | 0 ...174-jsx.problem.ts => 174-introduction-to-tsconfig.problem.ts} | 0 ...4-jsx.solution.ts => 174-introduction-to-tsconfig.solution.ts} | 0 ...ke-up-strict-mode.problem.ts => 175-tsconfig-bases.problem.ts} | 0 ...-up-strict-mode.solution.ts => 175-tsconfig-bases.solution.ts} | 0 ...ess.problem.ts => 176-multiple-tsconfig-json-files.problem.ts} | 0 ...s.solution.ts => 176-multiple-tsconfig-json-files.solution.ts} | 0 ...ts => 177-extending-from-other-tsconfig-json-files.problem.ts} | 0 ...s => 177-extending-from-other-tsconfig-json-files.solution.ts} | 0 ...ypes-for-node.problem.ts => 178-project-references.problem.ts} | 0 ...es-for-node.solution.ts => 178-project-references.solution.ts} | 0 ...-up-types-for-simple-scripts.problem.ts => 179-jsx.problem.ts} | 0 ...p-types-for-simple-scripts.solution.ts => 179-jsx.solution.ts} | 0 ...s.problem.ts => 180-rules-that-make-up-strict-mode.problem.ts} | 0 ...solution.ts => 180-rules-that-make-up-strict-mode.solution.ts} | 0 ...-app.problem.ts => 181-no-unchecked-indexed-access.problem.ts} | 0 ...pp.solution.ts => 181-no-unchecked-indexed-access.solution.ts} | 0 ...82-creating-declaration-files-and-declaration-maps.problem.ts} | 0 ...2-creating-declaration-files-and-declaration-maps.solution.ts} | 0 .../183-setting-up-types-for-node.problem.ts} | 0 .../183-setting-up-types-for-node.solution.ts} | 0 .../184-set-up-types-for-simple-scripts.problem.ts} | 0 .../184-set-up-types-for-simple-scripts.solution.ts} | 0 .../185-set-up-types-for-test-files.problem.ts} | 0 .../185-set-up-types-for-test-files.solution.ts} | 0 .../186-set-up-types-for-bundled-web-app.problem.ts} | 0 .../186-set-up-types-for-bundled-web-app.solution.ts} | 0 ...uments.problem.ts => 187-intro-to-the-utils-folder.problem.ts} | 0 ...ents.solution.ts => 187-intro-to-the-utils-folder.solution.ts} | 0 ...blem.ts => 188-generic-functions-without-inference.problem.ts} | 0 ...ion.ts => 188-generic-functions-without-inference.solution.ts} | 0 ...> 189-type-parameter-defaults-in-generic-functions.problem.ts} | 0 ... 189-type-parameter-defaults-in-generic-functions.solution.ts} | 0 ...-type-parameter-constraints-with-generic-functions.problem.ts} | 0 ...type-parameter-constraints-with-generic-functions.solution.ts} | 0 .../191-generic-functions-with-inference.problem.ts | 0 .../191-generic-functions-with-inference.solution.ts | 0 src/085-the-utils-folder/192-multiple-type-arguments.problem.ts | 0 src/085-the-utils-folder/192-multiple-type-arguments.solution.ts | 0 src/085-the-utils-folder/193-create-group-by-function.problem.ts | 0 src/085-the-utils-folder/193-create-group-by-function.solution.ts | 0 src/085-the-utils-folder/194-type-predicates.problem.ts | 0 src/085-the-utils-folder/194-type-predicates.solution.ts | 0 src/085-the-utils-folder/195-assertion-functions.problem.ts | 0 src/085-the-utils-folder/195-assertion-functions.solution.ts | 0 188 files changed, 0 insertions(+), 0 deletions(-) rename src/{032-typescript-only-features/102-auto-assignation-in-classes.problem.ts => 030-classes/102-typing-this-in-functions.problem.ts} (100%) rename src/{032-typescript-only-features/102-auto-assignation-in-classes.solution.ts => 030-classes/102-typing-this-in-functions.solution.ts} (100%) rename src/{032-typescript-only-features/103-enums.problem.ts => 030-classes/103-can-you-type-this-in-functions.problem.ts} (100%) rename src/{032-typescript-only-features/103-enums.solution.ts => 030-classes/103-can-you-type-this-in-functions.solution.ts} (100%) rename src/032-typescript-only-features/{104-const-enums.problem.ts => 104-auto-assignation-in-classes.problem.ts} (100%) rename src/032-typescript-only-features/{104-const-enums.solution.ts => 104-auto-assignation-in-classes.solution.ts} (100%) rename src/032-typescript-only-features/{105-namespaces.problem.ts => 105-enums.problem.ts} (100%) rename src/032-typescript-only-features/{105-namespaces.solution.ts => 105-enums.solution.ts} (100%) rename src/032-typescript-only-features/{106-namespaces-can-be-used-as-types-or-values.problem.ts => 106-const-enums.problem.ts} (100%) rename src/032-typescript-only-features/{106-namespaces-can-be-used-as-types-or-values.solution.ts => 106-const-enums.solution.ts} (100%) rename src/032-typescript-only-features/{107-namespaces-can-declaration-merge.problem.ts => 107-namespaces.problem.ts} (100%) rename src/032-typescript-only-features/{107-namespaces-can-declaration-merge.solution.ts => 107-namespaces.solution.ts} (100%) rename src/032-typescript-only-features/{108-interfaces-within-namespaces-can-declaration-merge.problem.ts => 108-namespaces-can-be-used-as-types-or-values.problem.ts} (100%) rename src/032-typescript-only-features/{108-interfaces-within-namespaces-can-declaration-merge.solution.ts => 108-namespaces-can-be-used-as-types-or-values.solution.ts} (100%) rename src/032-typescript-only-features/{109-should-you-use-namespaces.problem.ts => 109-namespaces-can-declaration-merge.problem.ts} (100%) rename src/032-typescript-only-features/{109-should-you-use-namespaces.solution.ts => 109-namespaces-can-declaration-merge.solution.ts} (100%) rename src/{035-understanding-the-compiler/110-any.problem.ts => 032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.problem.ts} (100%) rename src/{035-understanding-the-compiler/110-any.solution.ts => 032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.solution.ts} (100%) rename src/{035-understanding-the-compiler/111-global-typings-use-any.problem.ts => 032-typescript-only-features/111-should-you-use-namespaces.problem.ts} (100%) rename src/{035-understanding-the-compiler/111-global-typings-use-any.solution.ts => 032-typescript-only-features/111-should-you-use-namespaces.solution.ts} (100%) rename src/035-understanding-the-compiler/{112-as-and-as-any.problem.ts => 112-any.problem.ts} (100%) rename src/035-understanding-the-compiler/{112-as-and-as-any.solution.ts => 112-any.solution.ts} (100%) rename src/035-understanding-the-compiler/{113-limits-of-as.problem.ts => 113-global-typings-use-any.problem.ts} (100%) rename src/035-understanding-the-compiler/{113-limits-of-as.solution.ts => 113-global-typings-use-any.solution.ts} (100%) rename src/035-understanding-the-compiler/{114-satisfies.problem.ts => 114-as-and-as-any.problem.ts} (100%) rename src/035-understanding-the-compiler/{114-satisfies.solution.ts => 114-as-and-as-any.solution.ts} (100%) rename src/035-understanding-the-compiler/{115-annotating-errors-a-function-throws.problem.ts => 115-limits-of-as.problem.ts} (100%) rename src/035-understanding-the-compiler/{115-annotating-errors-a-function-throws.solution.ts => 115-limits-of-as.solution.ts} (100%) rename src/035-understanding-the-compiler/{116-excess-properties-warnings.problem.ts => 116-satisfies.problem.ts} (100%) rename src/035-understanding-the-compiler/{116-excess-properties-warnings.solution.ts => 116-satisfies.solution.ts} (100%) rename src/035-understanding-the-compiler/{117-object-keys-and-object-entries.problem.ts => 117-annotating-errors-a-function-throws.problem.ts} (100%) rename src/035-understanding-the-compiler/{117-object-keys-and-object-entries.solution.ts => 117-annotating-errors-a-function-throws.solution.ts} (100%) rename src/035-understanding-the-compiler/{118-structural-vs-nominal-typing.problem.ts => 118-excess-properties-warnings.problem.ts} (100%) rename src/035-understanding-the-compiler/{118-structural-vs-nominal-typing.solution.ts => 118-excess-properties-warnings.solution.ts} (100%) rename src/035-understanding-the-compiler/{119-how-enums-break-structural-typing.problem.ts => 119-object-keys-and-object-entries.problem.ts} (100%) rename src/035-understanding-the-compiler/{119-how-enums-break-structural-typing.solution.ts => 119-object-keys-and-object-entries.solution.ts} (100%) rename src/035-understanding-the-compiler/{120-unions-of-functions.problem.ts => 120-structural-vs-nominal-typing.problem.ts} (100%) rename src/035-understanding-the-compiler/{120-unions-of-functions.solution.ts => 120-structural-vs-nominal-typing.solution.ts} (100%) rename src/035-understanding-the-compiler/{121-empty-object-type.problem.ts => 121-how-enums-break-structural-typing.problem.ts} (100%) rename src/035-understanding-the-compiler/{121-empty-object-type.solution.ts => 121-how-enums-break-structural-typing.solution.ts} (100%) rename src/{040-deriving-types-from-values/122-typeof-keyword.problem.ts => 035-understanding-the-compiler/122-unions-of-functions.problem.ts} (100%) rename src/{040-deriving-types-from-values/122-typeof-keyword.solution.ts => 035-understanding-the-compiler/122-unions-of-functions.solution.ts} (100%) rename src/{040-deriving-types-from-values/123-create-runtime-values-from-types.problem.ts => 035-understanding-the-compiler/123-empty-object-type.problem.ts} (100%) rename src/{040-deriving-types-from-values/123-create-runtime-values-from-types.solution.ts => 035-understanding-the-compiler/123-empty-object-type.solution.ts} (100%) rename src/040-deriving-types-from-values/{124-classes-and-enums-cross-value-and-type-world.problem.ts => 124-typeof-keyword.problem.ts} (100%) rename src/040-deriving-types-from-values/{124-classes-and-enums-cross-value-and-type-world.solution.ts => 124-typeof-keyword.solution.ts} (100%) rename src/040-deriving-types-from-values/{125-return-type.problem.ts => 125-create-runtime-values-from-types.problem.ts} (100%) rename src/040-deriving-types-from-values/{125-return-type.solution.ts => 125-create-runtime-values-from-types.solution.ts} (100%) rename src/040-deriving-types-from-values/{126-parameters-type-helper.problem.ts => 126-classes-and-enums-cross-value-and-type-world.problem.ts} (100%) rename src/040-deriving-types-from-values/{126-parameters-type-helper.solution.ts => 126-classes-and-enums-cross-value-and-type-world.solution.ts} (100%) rename src/040-deriving-types-from-values/{127-keyof.problem.ts => 127-this-crosses-value-and-type-world.problem.ts} (100%) rename src/040-deriving-types-from-values/{127-keyof.solution.ts => 127-this-crosses-value-and-type-world.solution.ts} (100%) rename src/040-deriving-types-from-values/{128-indexed-access-types.problem.ts => 128-return-type.problem.ts} (100%) rename src/040-deriving-types-from-values/{128-indexed-access-types.solution.ts => 128-return-type.solution.ts} (100%) rename src/040-deriving-types-from-values/{129-pass-unions-to-indexed-access-types.problem.ts => 129-parameters-type-helper.problem.ts} (100%) rename src/040-deriving-types-from-values/{129-pass-unions-to-indexed-access-types.solution.ts => 129-parameters-type-helper.solution.ts} (100%) rename src/040-deriving-types-from-values/{130-pass-keyof-into-an-indexed-access-type.problem.ts => 130-keyof.problem.ts} (100%) rename src/040-deriving-types-from-values/{130-pass-keyof-into-an-indexed-access-type.solution.ts => 130-keyof.solution.ts} (100%) rename src/040-deriving-types-from-values/{131-create-an-enum-from-as-const-object.problem.ts => 131-indexed-access-types.problem.ts} (100%) rename src/040-deriving-types-from-values/{131-create-an-enum-from-as-const-object.solution.ts => 131-indexed-access-types.solution.ts} (100%) rename src/040-deriving-types-from-values/{132-create-a-union-from-an-as-const-array.problem.ts => 132-pass-unions-to-indexed-access-types.problem.ts} (100%) rename src/040-deriving-types-from-values/{132-create-a-union-from-an-as-const-array.solution.ts => 132-pass-unions-to-indexed-access-types.solution.ts} (100%) rename src/040-deriving-types-from-values/{133-should-i-use-enums-or-as-const.problem.ts => 133-pass-keyof-into-an-indexed-access-type.problem.ts} (100%) rename src/040-deriving-types-from-values/{133-should-i-use-enums-or-as-const.solution.ts => 133-pass-keyof-into-an-indexed-access-type.solution.ts} (100%) rename src/040-deriving-types-from-values/{134-using-numeric-comparators-on-enums.problem.ts => 134-create-an-enum-from-as-const-object.problem.ts} (100%) rename src/040-deriving-types-from-values/{134-using-numeric-comparators-on-enums.solution.ts => 134-create-an-enum-from-as-const-object.solution.ts} (100%) rename src/{060-modules-and-namespaces/135-module-or-script.problem.ts => 040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.problem.ts} (100%) rename src/{060-modules-and-namespaces/135-module-or-script.solution.ts => 040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.solution.ts} (100%) rename src/{060-modules-and-namespaces/136-module-detection-force.problem.ts => 040-deriving-types-from-values/136-should-i-use-enums-or-as-const.problem.ts} (100%) rename src/{060-modules-and-namespaces/136-module-detection-force.solution.ts => 040-deriving-types-from-values/136-should-i-use-enums-or-as-const.solution.ts} (100%) rename src/{060-modules-and-namespaces/137-isolated-modules.problem.ts => 040-deriving-types-from-values/137-using-numeric-comparators-on-enums.problem.ts} (100%) rename src/{060-modules-and-namespaces/137-isolated-modules.solution.ts => 040-deriving-types-from-values/137-using-numeric-comparators-on-enums.solution.ts} (100%) rename src/060-modules-and-namespaces/{138-cjs-vs-esm.problem.ts => 138-module-or-script.problem.ts} (100%) rename src/060-modules-and-namespaces/{138-cjs-vs-esm.solution.ts => 138-module-or-script.solution.ts} (100%) rename src/060-modules-and-namespaces/{139-module-resolution-bundler-or-nodenext.problem.ts => 139-module-detection-force.problem.ts} (100%) rename src/060-modules-and-namespaces/{139-module-resolution-bundler-or-nodenext.solution.ts => 139-module-detection-force.solution.ts} (100%) rename src/060-modules-and-namespaces/{140-declaration-files.problem.ts => 140-isolated-modules.problem.ts} (100%) rename src/060-modules-and-namespaces/{140-declaration-files.solution.ts => 140-isolated-modules.solution.ts} (100%) rename src/060-modules-and-namespaces/{141-skip-lib-check-true.problem.ts => 141-cjs-vs-esm.problem.ts} (100%) rename src/060-modules-and-namespaces/{141-skip-lib-check-true.solution.ts => 141-cjs-vs-esm.solution.ts} (100%) rename src/060-modules-and-namespaces/{142-declaration-files-can-be-modules-or-scripts.problem.ts => 142-module-resolution-bundler-or-nodenext.problem.ts} (100%) rename src/060-modules-and-namespaces/{142-declaration-files-can-be-modules-or-scripts.solution.ts => 142-module-resolution-bundler-or-nodenext.solution.ts} (100%) rename src/060-modules-and-namespaces/{143-declaration-files-can-be-used-to-type-js-files.problem.ts => 143-declaration-files.problem.ts} (100%) rename src/060-modules-and-namespaces/{143-declaration-files-can-be-used-to-type-js-files.solution.ts => 143-declaration-files.solution.ts} (100%) rename src/060-modules-and-namespaces/{144-should-you-use-declaration-files.problem.ts => 144-skip-lib-check-true.problem.ts} (100%) rename src/060-modules-and-namespaces/{144-should-you-use-declaration-files.solution.ts => 144-skip-lib-check-true.solution.ts} (100%) rename src/{062-the-global-namespace/145-ambient-context-and-declare-const.problem.ts => 060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.problem.ts} (100%) rename src/{062-the-global-namespace/145-ambient-context-and-declare-const.solution.ts => 060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.solution.ts} (100%) rename src/{062-the-global-namespace/146-declare-global.problem.ts => 060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.problem.ts} (100%) rename src/{062-the-global-namespace/146-declare-global.solution.ts => 060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.solution.ts} (100%) rename src/{062-the-global-namespace/147-globals-are-tied-to-a-single-tsconfig.problem.ts => 060-modules-and-namespaces/147-should-you-use-declaration-files.problem.ts} (100%) rename src/{062-the-global-namespace/147-globals-are-tied-to-a-single-tsconfig.solution.ts => 060-modules-and-namespaces/147-should-you-use-declaration-files.solution.ts} (100%) rename src/{062-the-global-namespace/148-declare-global-or-declaration-file.problem.ts => 060-modules-and-namespaces/148-resolve-json-module.problem.ts} (100%) rename src/{062-the-global-namespace/148-declare-global-or-declaration-file.solution.ts => 060-modules-and-namespaces/148-resolve-json-module.solution.ts} (100%) rename src/{062-the-global-namespace/149-declare-module.problem.ts => 060-modules-and-namespaces/149-json-d-ts-files.problem.ts} (100%) rename src/{062-the-global-namespace/149-declare-module.solution.ts => 060-modules-and-namespaces/149-json-d-ts-files.solution.ts} (100%) rename src/062-the-global-namespace/{150-wildcard-in-declare-module.problem.ts => 150-ambient-context-and-declare-const.problem.ts} (100%) rename src/062-the-global-namespace/{150-wildcard-in-declare-module.solution.ts => 150-ambient-context-and-declare-const.solution.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/151-declare-module-for-overriding-third-party-libraries.problem.ts => 062-the-global-namespace/151-declare-global.problem.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/151-declare-module-for-overriding-third-party-libraries.solution.ts => 062-the-global-namespace/151-declare-global.solution.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/152-lib-d-ts.problem.ts => 062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.problem.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/152-lib-d-ts.solution.ts => 062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.solution.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/153-using-target-to-change-lib-d-ts.problem.ts => 062-the-global-namespace/153-declare-global-or-declaration-file.problem.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/153-using-target-to-change-lib-d-ts.solution.ts => 062-the-global-namespace/153-declare-global-or-declaration-file.solution.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/154-lib-dom-d-ts.problem.ts => 062-the-global-namespace/154-declare-module.problem.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/154-lib-dom-d-ts.solution.ts => 062-the-global-namespace/154-declare-module.solution.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/155-third-party-types.problem.ts => 062-the-global-namespace/155-wildcard-in-declare-module.problem.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/155-third-party-types.solution.ts => 062-the-global-namespace/155-wildcard-in-declare-module.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{156-type-roots-in-tsconfig.problem.ts => 156-declare-module-for-overriding-third-party-libraries.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{156-type-roots-in-tsconfig.solution.ts => 156-declare-module-for-overriding-third-party-libraries.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{157-types-that-ship-with-libraries.problem.ts => 157-lib-d-ts.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{157-types-that-ship-with-libraries.solution.ts => 157-lib-d-ts.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{158-modifying-window.problem.ts => 158-using-target-to-change-lib-d-ts.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{158-modifying-window.solution.ts => 158-using-target-to-change-lib-d-ts.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{159-modifying-globalthis.problem.ts => 159-lib-dom-d-ts.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{159-modifying-globalthis.solution.ts => 159-lib-dom-d-ts.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{160-modifying-process-env.problem.ts => 160-third-party-types.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{160-modifying-process-env.solution.ts => 160-third-party-types.solution.ts} (100%) rename src/{075-designing-your-types/161-domain-modelling-in-typescript.problem.ts => 065-four-spaces-of-typescript-declarations/161-type-roots-in-tsconfig.problem.ts} (100%) rename src/{075-designing-your-types/161-domain-modelling-in-typescript.solution.ts => 065-four-spaces-of-typescript-declarations/161-type-roots-in-tsconfig.solution.ts} (100%) rename src/{075-designing-your-types/162-intro-to-helper-types.problem.ts => 065-four-spaces-of-typescript-declarations/162-types-that-ship-with-libraries.problem.ts} (100%) rename src/{075-designing-your-types/162-intro-to-helper-types.solution.ts => 065-four-spaces-of-typescript-declarations/162-types-that-ship-with-libraries.solution.ts} (100%) rename src/{075-designing-your-types/163-multiple-type-parameters.problem.ts => 065-four-spaces-of-typescript-declarations/163-modifying-window.problem.ts} (100%) rename src/{075-designing-your-types/163-multiple-type-parameters.solution.ts => 065-four-spaces-of-typescript-declarations/163-modifying-window.solution.ts} (100%) rename src/{075-designing-your-types/164-default-type-parameters.problem.ts => 065-four-spaces-of-typescript-declarations/164-modifying-globalthis.problem.ts} (100%) rename src/{075-designing-your-types/164-default-type-parameters.solution.ts => 065-four-spaces-of-typescript-declarations/164-modifying-globalthis.solution.ts} (100%) rename src/{075-designing-your-types/165-type-helper-constraints.problem.ts => 065-four-spaces-of-typescript-declarations/165-modifying-process-env.problem.ts} (100%) rename src/{075-designing-your-types/165-type-helper-constraints.solution.ts => 065-four-spaces-of-typescript-declarations/165-modifying-process-env.solution.ts} (100%) rename src/075-designing-your-types/{166-tighter-version-of-omit.problem.ts => 166-domain-modelling-in-typescript.problem.ts} (100%) rename src/075-designing-your-types/{166-tighter-version-of-omit.solution.ts => 166-domain-modelling-in-typescript.solution.ts} (100%) rename src/075-designing-your-types/{167-template-literal-types.problem.ts => 167-intro-to-helper-types.problem.ts} (100%) rename src/075-designing-your-types/{167-template-literal-types.solution.ts => 167-intro-to-helper-types.solution.ts} (100%) rename src/075-designing-your-types/{168-passing-unions-to-template-literal-types.problem.ts => 168-multiple-type-parameters.problem.ts} (100%) rename src/075-designing-your-types/{168-passing-unions-to-template-literal-types.solution.ts => 168-multiple-type-parameters.solution.ts} (100%) rename src/{080-configuring-typescript/169-introduction-to-tsconfig.problem.ts => 075-designing-your-types/169-default-type-parameters.problem.ts} (100%) rename src/{080-configuring-typescript/169-introduction-to-tsconfig.solution.ts => 075-designing-your-types/169-default-type-parameters.solution.ts} (100%) rename src/{080-configuring-typescript/170-tsconfig-bases.problem.ts => 075-designing-your-types/170-type-helper-constraints.problem.ts} (100%) rename src/{080-configuring-typescript/170-tsconfig-bases.solution.ts => 075-designing-your-types/170-type-helper-constraints.solution.ts} (100%) rename src/{080-configuring-typescript/171-multiple-tsconfig-json-files.problem.ts => 075-designing-your-types/171-tighter-version-of-omit.problem.ts} (100%) rename src/{080-configuring-typescript/171-multiple-tsconfig-json-files.solution.ts => 075-designing-your-types/171-tighter-version-of-omit.solution.ts} (100%) rename src/{080-configuring-typescript/172-extending-from-other-tsconfig-json-files.problem.ts => 075-designing-your-types/172-template-literal-types.problem.ts} (100%) rename src/{080-configuring-typescript/172-extending-from-other-tsconfig-json-files.solution.ts => 075-designing-your-types/172-template-literal-types.solution.ts} (100%) rename src/{080-configuring-typescript/173-project-references.problem.ts => 075-designing-your-types/173-passing-unions-to-template-literal-types.problem.ts} (100%) rename src/{080-configuring-typescript/173-project-references.solution.ts => 075-designing-your-types/173-passing-unions-to-template-literal-types.solution.ts} (100%) rename src/080-configuring-typescript/{174-jsx.problem.ts => 174-introduction-to-tsconfig.problem.ts} (100%) rename src/080-configuring-typescript/{174-jsx.solution.ts => 174-introduction-to-tsconfig.solution.ts} (100%) rename src/080-configuring-typescript/{175-rules-that-make-up-strict-mode.problem.ts => 175-tsconfig-bases.problem.ts} (100%) rename src/080-configuring-typescript/{175-rules-that-make-up-strict-mode.solution.ts => 175-tsconfig-bases.solution.ts} (100%) rename src/080-configuring-typescript/{176-no-unchecked-indexed-access.problem.ts => 176-multiple-tsconfig-json-files.problem.ts} (100%) rename src/080-configuring-typescript/{176-no-unchecked-indexed-access.solution.ts => 176-multiple-tsconfig-json-files.solution.ts} (100%) rename src/080-configuring-typescript/{177-creating-declaration-files-and-declaration-maps.problem.ts => 177-extending-from-other-tsconfig-json-files.problem.ts} (100%) rename src/080-configuring-typescript/{177-creating-declaration-files-and-declaration-maps.solution.ts => 177-extending-from-other-tsconfig-json-files.solution.ts} (100%) rename src/080-configuring-typescript/{178-setting-up-types-for-node.problem.ts => 178-project-references.problem.ts} (100%) rename src/080-configuring-typescript/{178-setting-up-types-for-node.solution.ts => 178-project-references.solution.ts} (100%) rename src/080-configuring-typescript/{179-set-up-types-for-simple-scripts.problem.ts => 179-jsx.problem.ts} (100%) rename src/080-configuring-typescript/{179-set-up-types-for-simple-scripts.solution.ts => 179-jsx.solution.ts} (100%) rename src/080-configuring-typescript/{180-set-up-types-for-test-files.problem.ts => 180-rules-that-make-up-strict-mode.problem.ts} (100%) rename src/080-configuring-typescript/{180-set-up-types-for-test-files.solution.ts => 180-rules-that-make-up-strict-mode.solution.ts} (100%) rename src/080-configuring-typescript/{181-set-up-types-for-bundled-web-app.problem.ts => 181-no-unchecked-indexed-access.problem.ts} (100%) rename src/080-configuring-typescript/{181-set-up-types-for-bundled-web-app.solution.ts => 181-no-unchecked-indexed-access.solution.ts} (100%) rename src/{085-the-utils-folder/182-intro-to-the-utils-folder.problem.ts => 080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.problem.ts} (100%) rename src/{085-the-utils-folder/182-intro-to-the-utils-folder.solution.ts => 080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.solution.ts} (100%) rename src/{085-the-utils-folder/183-generic-functions-without-inference.problem.ts => 080-configuring-typescript/183-setting-up-types-for-node.problem.ts} (100%) rename src/{085-the-utils-folder/183-generic-functions-without-inference.solution.ts => 080-configuring-typescript/183-setting-up-types-for-node.solution.ts} (100%) rename src/{085-the-utils-folder/184-type-parameter-defaults-in-generic-functions.problem.ts => 080-configuring-typescript/184-set-up-types-for-simple-scripts.problem.ts} (100%) rename src/{085-the-utils-folder/184-type-parameter-defaults-in-generic-functions.solution.ts => 080-configuring-typescript/184-set-up-types-for-simple-scripts.solution.ts} (100%) rename src/{085-the-utils-folder/185-type-parameter-constraints-with-generic-functions.problem.ts => 080-configuring-typescript/185-set-up-types-for-test-files.problem.ts} (100%) rename src/{085-the-utils-folder/185-type-parameter-constraints-with-generic-functions.solution.ts => 080-configuring-typescript/185-set-up-types-for-test-files.solution.ts} (100%) rename src/{085-the-utils-folder/186-generic-functions-with-inference.problem.ts => 080-configuring-typescript/186-set-up-types-for-bundled-web-app.problem.ts} (100%) rename src/{085-the-utils-folder/186-generic-functions-with-inference.solution.ts => 080-configuring-typescript/186-set-up-types-for-bundled-web-app.solution.ts} (100%) rename src/085-the-utils-folder/{187-multiple-type-arguments.problem.ts => 187-intro-to-the-utils-folder.problem.ts} (100%) rename src/085-the-utils-folder/{187-multiple-type-arguments.solution.ts => 187-intro-to-the-utils-folder.solution.ts} (100%) rename src/085-the-utils-folder/{188-create-group-by-function.problem.ts => 188-generic-functions-without-inference.problem.ts} (100%) rename src/085-the-utils-folder/{188-create-group-by-function.solution.ts => 188-generic-functions-without-inference.solution.ts} (100%) rename src/085-the-utils-folder/{189-type-predicates.problem.ts => 189-type-parameter-defaults-in-generic-functions.problem.ts} (100%) rename src/085-the-utils-folder/{189-type-predicates.solution.ts => 189-type-parameter-defaults-in-generic-functions.solution.ts} (100%) rename src/085-the-utils-folder/{190-assertion-functions.problem.ts => 190-type-parameter-constraints-with-generic-functions.problem.ts} (100%) rename src/085-the-utils-folder/{190-assertion-functions.solution.ts => 190-type-parameter-constraints-with-generic-functions.solution.ts} (100%) create mode 100644 src/085-the-utils-folder/191-generic-functions-with-inference.problem.ts create mode 100644 src/085-the-utils-folder/191-generic-functions-with-inference.solution.ts create mode 100644 src/085-the-utils-folder/192-multiple-type-arguments.problem.ts create mode 100644 src/085-the-utils-folder/192-multiple-type-arguments.solution.ts create mode 100644 src/085-the-utils-folder/193-create-group-by-function.problem.ts create mode 100644 src/085-the-utils-folder/193-create-group-by-function.solution.ts create mode 100644 src/085-the-utils-folder/194-type-predicates.problem.ts create mode 100644 src/085-the-utils-folder/194-type-predicates.solution.ts create mode 100644 src/085-the-utils-folder/195-assertion-functions.problem.ts create mode 100644 src/085-the-utils-folder/195-assertion-functions.solution.ts diff --git a/src/032-typescript-only-features/102-auto-assignation-in-classes.problem.ts b/src/030-classes/102-typing-this-in-functions.problem.ts similarity index 100% rename from src/032-typescript-only-features/102-auto-assignation-in-classes.problem.ts rename to src/030-classes/102-typing-this-in-functions.problem.ts diff --git a/src/032-typescript-only-features/102-auto-assignation-in-classes.solution.ts b/src/030-classes/102-typing-this-in-functions.solution.ts similarity index 100% rename from src/032-typescript-only-features/102-auto-assignation-in-classes.solution.ts rename to src/030-classes/102-typing-this-in-functions.solution.ts diff --git a/src/032-typescript-only-features/103-enums.problem.ts b/src/030-classes/103-can-you-type-this-in-functions.problem.ts similarity index 100% rename from src/032-typescript-only-features/103-enums.problem.ts rename to src/030-classes/103-can-you-type-this-in-functions.problem.ts diff --git a/src/032-typescript-only-features/103-enums.solution.ts b/src/030-classes/103-can-you-type-this-in-functions.solution.ts similarity index 100% rename from src/032-typescript-only-features/103-enums.solution.ts rename to src/030-classes/103-can-you-type-this-in-functions.solution.ts diff --git a/src/032-typescript-only-features/104-const-enums.problem.ts b/src/032-typescript-only-features/104-auto-assignation-in-classes.problem.ts similarity index 100% rename from src/032-typescript-only-features/104-const-enums.problem.ts rename to src/032-typescript-only-features/104-auto-assignation-in-classes.problem.ts diff --git a/src/032-typescript-only-features/104-const-enums.solution.ts b/src/032-typescript-only-features/104-auto-assignation-in-classes.solution.ts similarity index 100% rename from src/032-typescript-only-features/104-const-enums.solution.ts rename to src/032-typescript-only-features/104-auto-assignation-in-classes.solution.ts diff --git a/src/032-typescript-only-features/105-namespaces.problem.ts b/src/032-typescript-only-features/105-enums.problem.ts similarity index 100% rename from src/032-typescript-only-features/105-namespaces.problem.ts rename to src/032-typescript-only-features/105-enums.problem.ts diff --git a/src/032-typescript-only-features/105-namespaces.solution.ts b/src/032-typescript-only-features/105-enums.solution.ts similarity index 100% rename from src/032-typescript-only-features/105-namespaces.solution.ts rename to src/032-typescript-only-features/105-enums.solution.ts diff --git a/src/032-typescript-only-features/106-namespaces-can-be-used-as-types-or-values.problem.ts b/src/032-typescript-only-features/106-const-enums.problem.ts similarity index 100% rename from src/032-typescript-only-features/106-namespaces-can-be-used-as-types-or-values.problem.ts rename to src/032-typescript-only-features/106-const-enums.problem.ts diff --git a/src/032-typescript-only-features/106-namespaces-can-be-used-as-types-or-values.solution.ts b/src/032-typescript-only-features/106-const-enums.solution.ts similarity index 100% rename from src/032-typescript-only-features/106-namespaces-can-be-used-as-types-or-values.solution.ts rename to src/032-typescript-only-features/106-const-enums.solution.ts diff --git a/src/032-typescript-only-features/107-namespaces-can-declaration-merge.problem.ts b/src/032-typescript-only-features/107-namespaces.problem.ts similarity index 100% rename from src/032-typescript-only-features/107-namespaces-can-declaration-merge.problem.ts rename to src/032-typescript-only-features/107-namespaces.problem.ts diff --git a/src/032-typescript-only-features/107-namespaces-can-declaration-merge.solution.ts b/src/032-typescript-only-features/107-namespaces.solution.ts similarity index 100% rename from src/032-typescript-only-features/107-namespaces-can-declaration-merge.solution.ts rename to src/032-typescript-only-features/107-namespaces.solution.ts diff --git a/src/032-typescript-only-features/108-interfaces-within-namespaces-can-declaration-merge.problem.ts b/src/032-typescript-only-features/108-namespaces-can-be-used-as-types-or-values.problem.ts similarity index 100% rename from src/032-typescript-only-features/108-interfaces-within-namespaces-can-declaration-merge.problem.ts rename to src/032-typescript-only-features/108-namespaces-can-be-used-as-types-or-values.problem.ts diff --git a/src/032-typescript-only-features/108-interfaces-within-namespaces-can-declaration-merge.solution.ts b/src/032-typescript-only-features/108-namespaces-can-be-used-as-types-or-values.solution.ts similarity index 100% rename from src/032-typescript-only-features/108-interfaces-within-namespaces-can-declaration-merge.solution.ts rename to src/032-typescript-only-features/108-namespaces-can-be-used-as-types-or-values.solution.ts diff --git a/src/032-typescript-only-features/109-should-you-use-namespaces.problem.ts b/src/032-typescript-only-features/109-namespaces-can-declaration-merge.problem.ts similarity index 100% rename from src/032-typescript-only-features/109-should-you-use-namespaces.problem.ts rename to src/032-typescript-only-features/109-namespaces-can-declaration-merge.problem.ts diff --git a/src/032-typescript-only-features/109-should-you-use-namespaces.solution.ts b/src/032-typescript-only-features/109-namespaces-can-declaration-merge.solution.ts similarity index 100% rename from src/032-typescript-only-features/109-should-you-use-namespaces.solution.ts rename to src/032-typescript-only-features/109-namespaces-can-declaration-merge.solution.ts diff --git a/src/035-understanding-the-compiler/110-any.problem.ts b/src/032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/110-any.problem.ts rename to src/032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.problem.ts diff --git a/src/035-understanding-the-compiler/110-any.solution.ts b/src/032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/110-any.solution.ts rename to src/032-typescript-only-features/110-interfaces-within-namespaces-can-declaration-merge.solution.ts diff --git a/src/035-understanding-the-compiler/111-global-typings-use-any.problem.ts b/src/032-typescript-only-features/111-should-you-use-namespaces.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/111-global-typings-use-any.problem.ts rename to src/032-typescript-only-features/111-should-you-use-namespaces.problem.ts diff --git a/src/035-understanding-the-compiler/111-global-typings-use-any.solution.ts b/src/032-typescript-only-features/111-should-you-use-namespaces.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/111-global-typings-use-any.solution.ts rename to src/032-typescript-only-features/111-should-you-use-namespaces.solution.ts diff --git a/src/035-understanding-the-compiler/112-as-and-as-any.problem.ts b/src/035-understanding-the-compiler/112-any.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/112-as-and-as-any.problem.ts rename to src/035-understanding-the-compiler/112-any.problem.ts diff --git a/src/035-understanding-the-compiler/112-as-and-as-any.solution.ts b/src/035-understanding-the-compiler/112-any.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/112-as-and-as-any.solution.ts rename to src/035-understanding-the-compiler/112-any.solution.ts diff --git a/src/035-understanding-the-compiler/113-limits-of-as.problem.ts b/src/035-understanding-the-compiler/113-global-typings-use-any.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/113-limits-of-as.problem.ts rename to src/035-understanding-the-compiler/113-global-typings-use-any.problem.ts diff --git a/src/035-understanding-the-compiler/113-limits-of-as.solution.ts b/src/035-understanding-the-compiler/113-global-typings-use-any.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/113-limits-of-as.solution.ts rename to src/035-understanding-the-compiler/113-global-typings-use-any.solution.ts diff --git a/src/035-understanding-the-compiler/114-satisfies.problem.ts b/src/035-understanding-the-compiler/114-as-and-as-any.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/114-satisfies.problem.ts rename to src/035-understanding-the-compiler/114-as-and-as-any.problem.ts diff --git a/src/035-understanding-the-compiler/114-satisfies.solution.ts b/src/035-understanding-the-compiler/114-as-and-as-any.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/114-satisfies.solution.ts rename to src/035-understanding-the-compiler/114-as-and-as-any.solution.ts diff --git a/src/035-understanding-the-compiler/115-annotating-errors-a-function-throws.problem.ts b/src/035-understanding-the-compiler/115-limits-of-as.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/115-annotating-errors-a-function-throws.problem.ts rename to src/035-understanding-the-compiler/115-limits-of-as.problem.ts diff --git a/src/035-understanding-the-compiler/115-annotating-errors-a-function-throws.solution.ts b/src/035-understanding-the-compiler/115-limits-of-as.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/115-annotating-errors-a-function-throws.solution.ts rename to src/035-understanding-the-compiler/115-limits-of-as.solution.ts diff --git a/src/035-understanding-the-compiler/116-excess-properties-warnings.problem.ts b/src/035-understanding-the-compiler/116-satisfies.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/116-excess-properties-warnings.problem.ts rename to src/035-understanding-the-compiler/116-satisfies.problem.ts diff --git a/src/035-understanding-the-compiler/116-excess-properties-warnings.solution.ts b/src/035-understanding-the-compiler/116-satisfies.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/116-excess-properties-warnings.solution.ts rename to src/035-understanding-the-compiler/116-satisfies.solution.ts diff --git a/src/035-understanding-the-compiler/117-object-keys-and-object-entries.problem.ts b/src/035-understanding-the-compiler/117-annotating-errors-a-function-throws.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/117-object-keys-and-object-entries.problem.ts rename to src/035-understanding-the-compiler/117-annotating-errors-a-function-throws.problem.ts diff --git a/src/035-understanding-the-compiler/117-object-keys-and-object-entries.solution.ts b/src/035-understanding-the-compiler/117-annotating-errors-a-function-throws.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/117-object-keys-and-object-entries.solution.ts rename to src/035-understanding-the-compiler/117-annotating-errors-a-function-throws.solution.ts diff --git a/src/035-understanding-the-compiler/118-structural-vs-nominal-typing.problem.ts b/src/035-understanding-the-compiler/118-excess-properties-warnings.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/118-structural-vs-nominal-typing.problem.ts rename to src/035-understanding-the-compiler/118-excess-properties-warnings.problem.ts diff --git a/src/035-understanding-the-compiler/118-structural-vs-nominal-typing.solution.ts b/src/035-understanding-the-compiler/118-excess-properties-warnings.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/118-structural-vs-nominal-typing.solution.ts rename to src/035-understanding-the-compiler/118-excess-properties-warnings.solution.ts diff --git a/src/035-understanding-the-compiler/119-how-enums-break-structural-typing.problem.ts b/src/035-understanding-the-compiler/119-object-keys-and-object-entries.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/119-how-enums-break-structural-typing.problem.ts rename to src/035-understanding-the-compiler/119-object-keys-and-object-entries.problem.ts diff --git a/src/035-understanding-the-compiler/119-how-enums-break-structural-typing.solution.ts b/src/035-understanding-the-compiler/119-object-keys-and-object-entries.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/119-how-enums-break-structural-typing.solution.ts rename to src/035-understanding-the-compiler/119-object-keys-and-object-entries.solution.ts diff --git a/src/035-understanding-the-compiler/120-unions-of-functions.problem.ts b/src/035-understanding-the-compiler/120-structural-vs-nominal-typing.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/120-unions-of-functions.problem.ts rename to src/035-understanding-the-compiler/120-structural-vs-nominal-typing.problem.ts diff --git a/src/035-understanding-the-compiler/120-unions-of-functions.solution.ts b/src/035-understanding-the-compiler/120-structural-vs-nominal-typing.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/120-unions-of-functions.solution.ts rename to src/035-understanding-the-compiler/120-structural-vs-nominal-typing.solution.ts diff --git a/src/035-understanding-the-compiler/121-empty-object-type.problem.ts b/src/035-understanding-the-compiler/121-how-enums-break-structural-typing.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/121-empty-object-type.problem.ts rename to src/035-understanding-the-compiler/121-how-enums-break-structural-typing.problem.ts diff --git a/src/035-understanding-the-compiler/121-empty-object-type.solution.ts b/src/035-understanding-the-compiler/121-how-enums-break-structural-typing.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/121-empty-object-type.solution.ts rename to src/035-understanding-the-compiler/121-how-enums-break-structural-typing.solution.ts diff --git a/src/040-deriving-types-from-values/122-typeof-keyword.problem.ts b/src/035-understanding-the-compiler/122-unions-of-functions.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/122-typeof-keyword.problem.ts rename to src/035-understanding-the-compiler/122-unions-of-functions.problem.ts diff --git a/src/040-deriving-types-from-values/122-typeof-keyword.solution.ts b/src/035-understanding-the-compiler/122-unions-of-functions.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/122-typeof-keyword.solution.ts rename to src/035-understanding-the-compiler/122-unions-of-functions.solution.ts diff --git a/src/040-deriving-types-from-values/123-create-runtime-values-from-types.problem.ts b/src/035-understanding-the-compiler/123-empty-object-type.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/123-create-runtime-values-from-types.problem.ts rename to src/035-understanding-the-compiler/123-empty-object-type.problem.ts diff --git a/src/040-deriving-types-from-values/123-create-runtime-values-from-types.solution.ts b/src/035-understanding-the-compiler/123-empty-object-type.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/123-create-runtime-values-from-types.solution.ts rename to src/035-understanding-the-compiler/123-empty-object-type.solution.ts diff --git a/src/040-deriving-types-from-values/124-classes-and-enums-cross-value-and-type-world.problem.ts b/src/040-deriving-types-from-values/124-typeof-keyword.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/124-classes-and-enums-cross-value-and-type-world.problem.ts rename to src/040-deriving-types-from-values/124-typeof-keyword.problem.ts diff --git a/src/040-deriving-types-from-values/124-classes-and-enums-cross-value-and-type-world.solution.ts b/src/040-deriving-types-from-values/124-typeof-keyword.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/124-classes-and-enums-cross-value-and-type-world.solution.ts rename to src/040-deriving-types-from-values/124-typeof-keyword.solution.ts diff --git a/src/040-deriving-types-from-values/125-return-type.problem.ts b/src/040-deriving-types-from-values/125-create-runtime-values-from-types.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/125-return-type.problem.ts rename to src/040-deriving-types-from-values/125-create-runtime-values-from-types.problem.ts diff --git a/src/040-deriving-types-from-values/125-return-type.solution.ts b/src/040-deriving-types-from-values/125-create-runtime-values-from-types.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/125-return-type.solution.ts rename to src/040-deriving-types-from-values/125-create-runtime-values-from-types.solution.ts diff --git a/src/040-deriving-types-from-values/126-parameters-type-helper.problem.ts b/src/040-deriving-types-from-values/126-classes-and-enums-cross-value-and-type-world.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/126-parameters-type-helper.problem.ts rename to src/040-deriving-types-from-values/126-classes-and-enums-cross-value-and-type-world.problem.ts diff --git a/src/040-deriving-types-from-values/126-parameters-type-helper.solution.ts b/src/040-deriving-types-from-values/126-classes-and-enums-cross-value-and-type-world.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/126-parameters-type-helper.solution.ts rename to src/040-deriving-types-from-values/126-classes-and-enums-cross-value-and-type-world.solution.ts diff --git a/src/040-deriving-types-from-values/127-keyof.problem.ts b/src/040-deriving-types-from-values/127-this-crosses-value-and-type-world.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/127-keyof.problem.ts rename to src/040-deriving-types-from-values/127-this-crosses-value-and-type-world.problem.ts diff --git a/src/040-deriving-types-from-values/127-keyof.solution.ts b/src/040-deriving-types-from-values/127-this-crosses-value-and-type-world.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/127-keyof.solution.ts rename to src/040-deriving-types-from-values/127-this-crosses-value-and-type-world.solution.ts diff --git a/src/040-deriving-types-from-values/128-indexed-access-types.problem.ts b/src/040-deriving-types-from-values/128-return-type.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/128-indexed-access-types.problem.ts rename to src/040-deriving-types-from-values/128-return-type.problem.ts diff --git a/src/040-deriving-types-from-values/128-indexed-access-types.solution.ts b/src/040-deriving-types-from-values/128-return-type.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/128-indexed-access-types.solution.ts rename to src/040-deriving-types-from-values/128-return-type.solution.ts diff --git a/src/040-deriving-types-from-values/129-pass-unions-to-indexed-access-types.problem.ts b/src/040-deriving-types-from-values/129-parameters-type-helper.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/129-pass-unions-to-indexed-access-types.problem.ts rename to src/040-deriving-types-from-values/129-parameters-type-helper.problem.ts diff --git a/src/040-deriving-types-from-values/129-pass-unions-to-indexed-access-types.solution.ts b/src/040-deriving-types-from-values/129-parameters-type-helper.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/129-pass-unions-to-indexed-access-types.solution.ts rename to src/040-deriving-types-from-values/129-parameters-type-helper.solution.ts diff --git a/src/040-deriving-types-from-values/130-pass-keyof-into-an-indexed-access-type.problem.ts b/src/040-deriving-types-from-values/130-keyof.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/130-pass-keyof-into-an-indexed-access-type.problem.ts rename to src/040-deriving-types-from-values/130-keyof.problem.ts diff --git a/src/040-deriving-types-from-values/130-pass-keyof-into-an-indexed-access-type.solution.ts b/src/040-deriving-types-from-values/130-keyof.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/130-pass-keyof-into-an-indexed-access-type.solution.ts rename to src/040-deriving-types-from-values/130-keyof.solution.ts diff --git a/src/040-deriving-types-from-values/131-create-an-enum-from-as-const-object.problem.ts b/src/040-deriving-types-from-values/131-indexed-access-types.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/131-create-an-enum-from-as-const-object.problem.ts rename to src/040-deriving-types-from-values/131-indexed-access-types.problem.ts diff --git a/src/040-deriving-types-from-values/131-create-an-enum-from-as-const-object.solution.ts b/src/040-deriving-types-from-values/131-indexed-access-types.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/131-create-an-enum-from-as-const-object.solution.ts rename to src/040-deriving-types-from-values/131-indexed-access-types.solution.ts diff --git a/src/040-deriving-types-from-values/132-create-a-union-from-an-as-const-array.problem.ts b/src/040-deriving-types-from-values/132-pass-unions-to-indexed-access-types.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/132-create-a-union-from-an-as-const-array.problem.ts rename to src/040-deriving-types-from-values/132-pass-unions-to-indexed-access-types.problem.ts diff --git a/src/040-deriving-types-from-values/132-create-a-union-from-an-as-const-array.solution.ts b/src/040-deriving-types-from-values/132-pass-unions-to-indexed-access-types.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/132-create-a-union-from-an-as-const-array.solution.ts rename to src/040-deriving-types-from-values/132-pass-unions-to-indexed-access-types.solution.ts diff --git a/src/040-deriving-types-from-values/133-should-i-use-enums-or-as-const.problem.ts b/src/040-deriving-types-from-values/133-pass-keyof-into-an-indexed-access-type.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/133-should-i-use-enums-or-as-const.problem.ts rename to src/040-deriving-types-from-values/133-pass-keyof-into-an-indexed-access-type.problem.ts diff --git a/src/040-deriving-types-from-values/133-should-i-use-enums-or-as-const.solution.ts b/src/040-deriving-types-from-values/133-pass-keyof-into-an-indexed-access-type.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/133-should-i-use-enums-or-as-const.solution.ts rename to src/040-deriving-types-from-values/133-pass-keyof-into-an-indexed-access-type.solution.ts diff --git a/src/040-deriving-types-from-values/134-using-numeric-comparators-on-enums.problem.ts b/src/040-deriving-types-from-values/134-create-an-enum-from-as-const-object.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/134-using-numeric-comparators-on-enums.problem.ts rename to src/040-deriving-types-from-values/134-create-an-enum-from-as-const-object.problem.ts diff --git a/src/040-deriving-types-from-values/134-using-numeric-comparators-on-enums.solution.ts b/src/040-deriving-types-from-values/134-create-an-enum-from-as-const-object.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/134-using-numeric-comparators-on-enums.solution.ts rename to src/040-deriving-types-from-values/134-create-an-enum-from-as-const-object.solution.ts diff --git a/src/060-modules-and-namespaces/135-module-or-script.problem.ts b/src/040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/135-module-or-script.problem.ts rename to src/040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.problem.ts diff --git a/src/060-modules-and-namespaces/135-module-or-script.solution.ts b/src/040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/135-module-or-script.solution.ts rename to src/040-deriving-types-from-values/135-create-a-union-from-an-as-const-array.solution.ts diff --git a/src/060-modules-and-namespaces/136-module-detection-force.problem.ts b/src/040-deriving-types-from-values/136-should-i-use-enums-or-as-const.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/136-module-detection-force.problem.ts rename to src/040-deriving-types-from-values/136-should-i-use-enums-or-as-const.problem.ts diff --git a/src/060-modules-and-namespaces/136-module-detection-force.solution.ts b/src/040-deriving-types-from-values/136-should-i-use-enums-or-as-const.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/136-module-detection-force.solution.ts rename to src/040-deriving-types-from-values/136-should-i-use-enums-or-as-const.solution.ts diff --git a/src/060-modules-and-namespaces/137-isolated-modules.problem.ts b/src/040-deriving-types-from-values/137-using-numeric-comparators-on-enums.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/137-isolated-modules.problem.ts rename to src/040-deriving-types-from-values/137-using-numeric-comparators-on-enums.problem.ts diff --git a/src/060-modules-and-namespaces/137-isolated-modules.solution.ts b/src/040-deriving-types-from-values/137-using-numeric-comparators-on-enums.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/137-isolated-modules.solution.ts rename to src/040-deriving-types-from-values/137-using-numeric-comparators-on-enums.solution.ts diff --git a/src/060-modules-and-namespaces/138-cjs-vs-esm.problem.ts b/src/060-modules-and-namespaces/138-module-or-script.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/138-cjs-vs-esm.problem.ts rename to src/060-modules-and-namespaces/138-module-or-script.problem.ts diff --git a/src/060-modules-and-namespaces/138-cjs-vs-esm.solution.ts b/src/060-modules-and-namespaces/138-module-or-script.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/138-cjs-vs-esm.solution.ts rename to src/060-modules-and-namespaces/138-module-or-script.solution.ts diff --git a/src/060-modules-and-namespaces/139-module-resolution-bundler-or-nodenext.problem.ts b/src/060-modules-and-namespaces/139-module-detection-force.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/139-module-resolution-bundler-or-nodenext.problem.ts rename to src/060-modules-and-namespaces/139-module-detection-force.problem.ts diff --git a/src/060-modules-and-namespaces/139-module-resolution-bundler-or-nodenext.solution.ts b/src/060-modules-and-namespaces/139-module-detection-force.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/139-module-resolution-bundler-or-nodenext.solution.ts rename to src/060-modules-and-namespaces/139-module-detection-force.solution.ts diff --git a/src/060-modules-and-namespaces/140-declaration-files.problem.ts b/src/060-modules-and-namespaces/140-isolated-modules.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/140-declaration-files.problem.ts rename to src/060-modules-and-namespaces/140-isolated-modules.problem.ts diff --git a/src/060-modules-and-namespaces/140-declaration-files.solution.ts b/src/060-modules-and-namespaces/140-isolated-modules.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/140-declaration-files.solution.ts rename to src/060-modules-and-namespaces/140-isolated-modules.solution.ts diff --git a/src/060-modules-and-namespaces/141-skip-lib-check-true.problem.ts b/src/060-modules-and-namespaces/141-cjs-vs-esm.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/141-skip-lib-check-true.problem.ts rename to src/060-modules-and-namespaces/141-cjs-vs-esm.problem.ts diff --git a/src/060-modules-and-namespaces/141-skip-lib-check-true.solution.ts b/src/060-modules-and-namespaces/141-cjs-vs-esm.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/141-skip-lib-check-true.solution.ts rename to src/060-modules-and-namespaces/141-cjs-vs-esm.solution.ts diff --git a/src/060-modules-and-namespaces/142-declaration-files-can-be-modules-or-scripts.problem.ts b/src/060-modules-and-namespaces/142-module-resolution-bundler-or-nodenext.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/142-declaration-files-can-be-modules-or-scripts.problem.ts rename to src/060-modules-and-namespaces/142-module-resolution-bundler-or-nodenext.problem.ts diff --git a/src/060-modules-and-namespaces/142-declaration-files-can-be-modules-or-scripts.solution.ts b/src/060-modules-and-namespaces/142-module-resolution-bundler-or-nodenext.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/142-declaration-files-can-be-modules-or-scripts.solution.ts rename to src/060-modules-and-namespaces/142-module-resolution-bundler-or-nodenext.solution.ts diff --git a/src/060-modules-and-namespaces/143-declaration-files-can-be-used-to-type-js-files.problem.ts b/src/060-modules-and-namespaces/143-declaration-files.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/143-declaration-files-can-be-used-to-type-js-files.problem.ts rename to src/060-modules-and-namespaces/143-declaration-files.problem.ts diff --git a/src/060-modules-and-namespaces/143-declaration-files-can-be-used-to-type-js-files.solution.ts b/src/060-modules-and-namespaces/143-declaration-files.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/143-declaration-files-can-be-used-to-type-js-files.solution.ts rename to src/060-modules-and-namespaces/143-declaration-files.solution.ts diff --git a/src/060-modules-and-namespaces/144-should-you-use-declaration-files.problem.ts b/src/060-modules-and-namespaces/144-skip-lib-check-true.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/144-should-you-use-declaration-files.problem.ts rename to src/060-modules-and-namespaces/144-skip-lib-check-true.problem.ts diff --git a/src/060-modules-and-namespaces/144-should-you-use-declaration-files.solution.ts b/src/060-modules-and-namespaces/144-skip-lib-check-true.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/144-should-you-use-declaration-files.solution.ts rename to src/060-modules-and-namespaces/144-skip-lib-check-true.solution.ts diff --git a/src/062-the-global-namespace/145-ambient-context-and-declare-const.problem.ts b/src/060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.problem.ts similarity index 100% rename from src/062-the-global-namespace/145-ambient-context-and-declare-const.problem.ts rename to src/060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.problem.ts diff --git a/src/062-the-global-namespace/145-ambient-context-and-declare-const.solution.ts b/src/060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.solution.ts similarity index 100% rename from src/062-the-global-namespace/145-ambient-context-and-declare-const.solution.ts rename to src/060-modules-and-namespaces/145-declaration-files-can-be-modules-or-scripts.solution.ts diff --git a/src/062-the-global-namespace/146-declare-global.problem.ts b/src/060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.problem.ts similarity index 100% rename from src/062-the-global-namespace/146-declare-global.problem.ts rename to src/060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.problem.ts diff --git a/src/062-the-global-namespace/146-declare-global.solution.ts b/src/060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.solution.ts similarity index 100% rename from src/062-the-global-namespace/146-declare-global.solution.ts rename to src/060-modules-and-namespaces/146-declaration-files-can-be-used-to-type-js-files.solution.ts diff --git a/src/062-the-global-namespace/147-globals-are-tied-to-a-single-tsconfig.problem.ts b/src/060-modules-and-namespaces/147-should-you-use-declaration-files.problem.ts similarity index 100% rename from src/062-the-global-namespace/147-globals-are-tied-to-a-single-tsconfig.problem.ts rename to src/060-modules-and-namespaces/147-should-you-use-declaration-files.problem.ts diff --git a/src/062-the-global-namespace/147-globals-are-tied-to-a-single-tsconfig.solution.ts b/src/060-modules-and-namespaces/147-should-you-use-declaration-files.solution.ts similarity index 100% rename from src/062-the-global-namespace/147-globals-are-tied-to-a-single-tsconfig.solution.ts rename to src/060-modules-and-namespaces/147-should-you-use-declaration-files.solution.ts diff --git a/src/062-the-global-namespace/148-declare-global-or-declaration-file.problem.ts b/src/060-modules-and-namespaces/148-resolve-json-module.problem.ts similarity index 100% rename from src/062-the-global-namespace/148-declare-global-or-declaration-file.problem.ts rename to src/060-modules-and-namespaces/148-resolve-json-module.problem.ts diff --git a/src/062-the-global-namespace/148-declare-global-or-declaration-file.solution.ts b/src/060-modules-and-namespaces/148-resolve-json-module.solution.ts similarity index 100% rename from src/062-the-global-namespace/148-declare-global-or-declaration-file.solution.ts rename to src/060-modules-and-namespaces/148-resolve-json-module.solution.ts diff --git a/src/062-the-global-namespace/149-declare-module.problem.ts b/src/060-modules-and-namespaces/149-json-d-ts-files.problem.ts similarity index 100% rename from src/062-the-global-namespace/149-declare-module.problem.ts rename to src/060-modules-and-namespaces/149-json-d-ts-files.problem.ts diff --git a/src/062-the-global-namespace/149-declare-module.solution.ts b/src/060-modules-and-namespaces/149-json-d-ts-files.solution.ts similarity index 100% rename from src/062-the-global-namespace/149-declare-module.solution.ts rename to src/060-modules-and-namespaces/149-json-d-ts-files.solution.ts diff --git a/src/062-the-global-namespace/150-wildcard-in-declare-module.problem.ts b/src/062-the-global-namespace/150-ambient-context-and-declare-const.problem.ts similarity index 100% rename from src/062-the-global-namespace/150-wildcard-in-declare-module.problem.ts rename to src/062-the-global-namespace/150-ambient-context-and-declare-const.problem.ts diff --git a/src/062-the-global-namespace/150-wildcard-in-declare-module.solution.ts b/src/062-the-global-namespace/150-ambient-context-and-declare-const.solution.ts similarity index 100% rename from src/062-the-global-namespace/150-wildcard-in-declare-module.solution.ts rename to src/062-the-global-namespace/150-ambient-context-and-declare-const.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/151-declare-module-for-overriding-third-party-libraries.problem.ts b/src/062-the-global-namespace/151-declare-global.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/151-declare-module-for-overriding-third-party-libraries.problem.ts rename to src/062-the-global-namespace/151-declare-global.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/151-declare-module-for-overriding-third-party-libraries.solution.ts b/src/062-the-global-namespace/151-declare-global.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/151-declare-module-for-overriding-third-party-libraries.solution.ts rename to src/062-the-global-namespace/151-declare-global.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/152-lib-d-ts.problem.ts b/src/062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/152-lib-d-ts.problem.ts rename to src/062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/152-lib-d-ts.solution.ts b/src/062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/152-lib-d-ts.solution.ts rename to src/062-the-global-namespace/152-globals-are-tied-to-a-single-tsconfig.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/153-using-target-to-change-lib-d-ts.problem.ts b/src/062-the-global-namespace/153-declare-global-or-declaration-file.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/153-using-target-to-change-lib-d-ts.problem.ts rename to src/062-the-global-namespace/153-declare-global-or-declaration-file.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/153-using-target-to-change-lib-d-ts.solution.ts b/src/062-the-global-namespace/153-declare-global-or-declaration-file.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/153-using-target-to-change-lib-d-ts.solution.ts rename to src/062-the-global-namespace/153-declare-global-or-declaration-file.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/154-lib-dom-d-ts.problem.ts b/src/062-the-global-namespace/154-declare-module.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/154-lib-dom-d-ts.problem.ts rename to src/062-the-global-namespace/154-declare-module.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/154-lib-dom-d-ts.solution.ts b/src/062-the-global-namespace/154-declare-module.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/154-lib-dom-d-ts.solution.ts rename to src/062-the-global-namespace/154-declare-module.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/155-third-party-types.problem.ts b/src/062-the-global-namespace/155-wildcard-in-declare-module.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/155-third-party-types.problem.ts rename to src/062-the-global-namespace/155-wildcard-in-declare-module.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/155-third-party-types.solution.ts b/src/062-the-global-namespace/155-wildcard-in-declare-module.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/155-third-party-types.solution.ts rename to src/062-the-global-namespace/155-wildcard-in-declare-module.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/156-type-roots-in-tsconfig.problem.ts b/src/065-four-spaces-of-typescript-declarations/156-declare-module-for-overriding-third-party-libraries.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/156-type-roots-in-tsconfig.problem.ts rename to src/065-four-spaces-of-typescript-declarations/156-declare-module-for-overriding-third-party-libraries.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/156-type-roots-in-tsconfig.solution.ts b/src/065-four-spaces-of-typescript-declarations/156-declare-module-for-overriding-third-party-libraries.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/156-type-roots-in-tsconfig.solution.ts rename to src/065-four-spaces-of-typescript-declarations/156-declare-module-for-overriding-third-party-libraries.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/157-types-that-ship-with-libraries.problem.ts b/src/065-four-spaces-of-typescript-declarations/157-lib-d-ts.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/157-types-that-ship-with-libraries.problem.ts rename to src/065-four-spaces-of-typescript-declarations/157-lib-d-ts.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/157-types-that-ship-with-libraries.solution.ts b/src/065-four-spaces-of-typescript-declarations/157-lib-d-ts.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/157-types-that-ship-with-libraries.solution.ts rename to src/065-four-spaces-of-typescript-declarations/157-lib-d-ts.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/158-modifying-window.problem.ts b/src/065-four-spaces-of-typescript-declarations/158-using-target-to-change-lib-d-ts.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/158-modifying-window.problem.ts rename to src/065-four-spaces-of-typescript-declarations/158-using-target-to-change-lib-d-ts.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/158-modifying-window.solution.ts b/src/065-four-spaces-of-typescript-declarations/158-using-target-to-change-lib-d-ts.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/158-modifying-window.solution.ts rename to src/065-four-spaces-of-typescript-declarations/158-using-target-to-change-lib-d-ts.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/159-modifying-globalthis.problem.ts b/src/065-four-spaces-of-typescript-declarations/159-lib-dom-d-ts.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/159-modifying-globalthis.problem.ts rename to src/065-four-spaces-of-typescript-declarations/159-lib-dom-d-ts.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/159-modifying-globalthis.solution.ts b/src/065-four-spaces-of-typescript-declarations/159-lib-dom-d-ts.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/159-modifying-globalthis.solution.ts rename to src/065-four-spaces-of-typescript-declarations/159-lib-dom-d-ts.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/160-modifying-process-env.problem.ts b/src/065-four-spaces-of-typescript-declarations/160-third-party-types.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/160-modifying-process-env.problem.ts rename to src/065-four-spaces-of-typescript-declarations/160-third-party-types.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/160-modifying-process-env.solution.ts b/src/065-four-spaces-of-typescript-declarations/160-third-party-types.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/160-modifying-process-env.solution.ts rename to src/065-four-spaces-of-typescript-declarations/160-third-party-types.solution.ts diff --git a/src/075-designing-your-types/161-domain-modelling-in-typescript.problem.ts b/src/065-four-spaces-of-typescript-declarations/161-type-roots-in-tsconfig.problem.ts similarity index 100% rename from src/075-designing-your-types/161-domain-modelling-in-typescript.problem.ts rename to src/065-four-spaces-of-typescript-declarations/161-type-roots-in-tsconfig.problem.ts diff --git a/src/075-designing-your-types/161-domain-modelling-in-typescript.solution.ts b/src/065-four-spaces-of-typescript-declarations/161-type-roots-in-tsconfig.solution.ts similarity index 100% rename from src/075-designing-your-types/161-domain-modelling-in-typescript.solution.ts rename to src/065-four-spaces-of-typescript-declarations/161-type-roots-in-tsconfig.solution.ts diff --git a/src/075-designing-your-types/162-intro-to-helper-types.problem.ts b/src/065-four-spaces-of-typescript-declarations/162-types-that-ship-with-libraries.problem.ts similarity index 100% rename from src/075-designing-your-types/162-intro-to-helper-types.problem.ts rename to src/065-four-spaces-of-typescript-declarations/162-types-that-ship-with-libraries.problem.ts diff --git a/src/075-designing-your-types/162-intro-to-helper-types.solution.ts b/src/065-four-spaces-of-typescript-declarations/162-types-that-ship-with-libraries.solution.ts similarity index 100% rename from src/075-designing-your-types/162-intro-to-helper-types.solution.ts rename to src/065-four-spaces-of-typescript-declarations/162-types-that-ship-with-libraries.solution.ts diff --git a/src/075-designing-your-types/163-multiple-type-parameters.problem.ts b/src/065-four-spaces-of-typescript-declarations/163-modifying-window.problem.ts similarity index 100% rename from src/075-designing-your-types/163-multiple-type-parameters.problem.ts rename to src/065-four-spaces-of-typescript-declarations/163-modifying-window.problem.ts diff --git a/src/075-designing-your-types/163-multiple-type-parameters.solution.ts b/src/065-four-spaces-of-typescript-declarations/163-modifying-window.solution.ts similarity index 100% rename from src/075-designing-your-types/163-multiple-type-parameters.solution.ts rename to src/065-four-spaces-of-typescript-declarations/163-modifying-window.solution.ts diff --git a/src/075-designing-your-types/164-default-type-parameters.problem.ts b/src/065-four-spaces-of-typescript-declarations/164-modifying-globalthis.problem.ts similarity index 100% rename from src/075-designing-your-types/164-default-type-parameters.problem.ts rename to src/065-four-spaces-of-typescript-declarations/164-modifying-globalthis.problem.ts diff --git a/src/075-designing-your-types/164-default-type-parameters.solution.ts b/src/065-four-spaces-of-typescript-declarations/164-modifying-globalthis.solution.ts similarity index 100% rename from src/075-designing-your-types/164-default-type-parameters.solution.ts rename to src/065-four-spaces-of-typescript-declarations/164-modifying-globalthis.solution.ts diff --git a/src/075-designing-your-types/165-type-helper-constraints.problem.ts b/src/065-four-spaces-of-typescript-declarations/165-modifying-process-env.problem.ts similarity index 100% rename from src/075-designing-your-types/165-type-helper-constraints.problem.ts rename to src/065-four-spaces-of-typescript-declarations/165-modifying-process-env.problem.ts diff --git a/src/075-designing-your-types/165-type-helper-constraints.solution.ts b/src/065-four-spaces-of-typescript-declarations/165-modifying-process-env.solution.ts similarity index 100% rename from src/075-designing-your-types/165-type-helper-constraints.solution.ts rename to src/065-four-spaces-of-typescript-declarations/165-modifying-process-env.solution.ts diff --git a/src/075-designing-your-types/166-tighter-version-of-omit.problem.ts b/src/075-designing-your-types/166-domain-modelling-in-typescript.problem.ts similarity index 100% rename from src/075-designing-your-types/166-tighter-version-of-omit.problem.ts rename to src/075-designing-your-types/166-domain-modelling-in-typescript.problem.ts diff --git a/src/075-designing-your-types/166-tighter-version-of-omit.solution.ts b/src/075-designing-your-types/166-domain-modelling-in-typescript.solution.ts similarity index 100% rename from src/075-designing-your-types/166-tighter-version-of-omit.solution.ts rename to src/075-designing-your-types/166-domain-modelling-in-typescript.solution.ts diff --git a/src/075-designing-your-types/167-template-literal-types.problem.ts b/src/075-designing-your-types/167-intro-to-helper-types.problem.ts similarity index 100% rename from src/075-designing-your-types/167-template-literal-types.problem.ts rename to src/075-designing-your-types/167-intro-to-helper-types.problem.ts diff --git a/src/075-designing-your-types/167-template-literal-types.solution.ts b/src/075-designing-your-types/167-intro-to-helper-types.solution.ts similarity index 100% rename from src/075-designing-your-types/167-template-literal-types.solution.ts rename to src/075-designing-your-types/167-intro-to-helper-types.solution.ts diff --git a/src/075-designing-your-types/168-passing-unions-to-template-literal-types.problem.ts b/src/075-designing-your-types/168-multiple-type-parameters.problem.ts similarity index 100% rename from src/075-designing-your-types/168-passing-unions-to-template-literal-types.problem.ts rename to src/075-designing-your-types/168-multiple-type-parameters.problem.ts diff --git a/src/075-designing-your-types/168-passing-unions-to-template-literal-types.solution.ts b/src/075-designing-your-types/168-multiple-type-parameters.solution.ts similarity index 100% rename from src/075-designing-your-types/168-passing-unions-to-template-literal-types.solution.ts rename to src/075-designing-your-types/168-multiple-type-parameters.solution.ts diff --git a/src/080-configuring-typescript/169-introduction-to-tsconfig.problem.ts b/src/075-designing-your-types/169-default-type-parameters.problem.ts similarity index 100% rename from src/080-configuring-typescript/169-introduction-to-tsconfig.problem.ts rename to src/075-designing-your-types/169-default-type-parameters.problem.ts diff --git a/src/080-configuring-typescript/169-introduction-to-tsconfig.solution.ts b/src/075-designing-your-types/169-default-type-parameters.solution.ts similarity index 100% rename from src/080-configuring-typescript/169-introduction-to-tsconfig.solution.ts rename to src/075-designing-your-types/169-default-type-parameters.solution.ts diff --git a/src/080-configuring-typescript/170-tsconfig-bases.problem.ts b/src/075-designing-your-types/170-type-helper-constraints.problem.ts similarity index 100% rename from src/080-configuring-typescript/170-tsconfig-bases.problem.ts rename to src/075-designing-your-types/170-type-helper-constraints.problem.ts diff --git a/src/080-configuring-typescript/170-tsconfig-bases.solution.ts b/src/075-designing-your-types/170-type-helper-constraints.solution.ts similarity index 100% rename from src/080-configuring-typescript/170-tsconfig-bases.solution.ts rename to src/075-designing-your-types/170-type-helper-constraints.solution.ts diff --git a/src/080-configuring-typescript/171-multiple-tsconfig-json-files.problem.ts b/src/075-designing-your-types/171-tighter-version-of-omit.problem.ts similarity index 100% rename from src/080-configuring-typescript/171-multiple-tsconfig-json-files.problem.ts rename to src/075-designing-your-types/171-tighter-version-of-omit.problem.ts diff --git a/src/080-configuring-typescript/171-multiple-tsconfig-json-files.solution.ts b/src/075-designing-your-types/171-tighter-version-of-omit.solution.ts similarity index 100% rename from src/080-configuring-typescript/171-multiple-tsconfig-json-files.solution.ts rename to src/075-designing-your-types/171-tighter-version-of-omit.solution.ts diff --git a/src/080-configuring-typescript/172-extending-from-other-tsconfig-json-files.problem.ts b/src/075-designing-your-types/172-template-literal-types.problem.ts similarity index 100% rename from src/080-configuring-typescript/172-extending-from-other-tsconfig-json-files.problem.ts rename to src/075-designing-your-types/172-template-literal-types.problem.ts diff --git a/src/080-configuring-typescript/172-extending-from-other-tsconfig-json-files.solution.ts b/src/075-designing-your-types/172-template-literal-types.solution.ts similarity index 100% rename from src/080-configuring-typescript/172-extending-from-other-tsconfig-json-files.solution.ts rename to src/075-designing-your-types/172-template-literal-types.solution.ts diff --git a/src/080-configuring-typescript/173-project-references.problem.ts b/src/075-designing-your-types/173-passing-unions-to-template-literal-types.problem.ts similarity index 100% rename from src/080-configuring-typescript/173-project-references.problem.ts rename to src/075-designing-your-types/173-passing-unions-to-template-literal-types.problem.ts diff --git a/src/080-configuring-typescript/173-project-references.solution.ts b/src/075-designing-your-types/173-passing-unions-to-template-literal-types.solution.ts similarity index 100% rename from src/080-configuring-typescript/173-project-references.solution.ts rename to src/075-designing-your-types/173-passing-unions-to-template-literal-types.solution.ts diff --git a/src/080-configuring-typescript/174-jsx.problem.ts b/src/080-configuring-typescript/174-introduction-to-tsconfig.problem.ts similarity index 100% rename from src/080-configuring-typescript/174-jsx.problem.ts rename to src/080-configuring-typescript/174-introduction-to-tsconfig.problem.ts diff --git a/src/080-configuring-typescript/174-jsx.solution.ts b/src/080-configuring-typescript/174-introduction-to-tsconfig.solution.ts similarity index 100% rename from src/080-configuring-typescript/174-jsx.solution.ts rename to src/080-configuring-typescript/174-introduction-to-tsconfig.solution.ts diff --git a/src/080-configuring-typescript/175-rules-that-make-up-strict-mode.problem.ts b/src/080-configuring-typescript/175-tsconfig-bases.problem.ts similarity index 100% rename from src/080-configuring-typescript/175-rules-that-make-up-strict-mode.problem.ts rename to src/080-configuring-typescript/175-tsconfig-bases.problem.ts diff --git a/src/080-configuring-typescript/175-rules-that-make-up-strict-mode.solution.ts b/src/080-configuring-typescript/175-tsconfig-bases.solution.ts similarity index 100% rename from src/080-configuring-typescript/175-rules-that-make-up-strict-mode.solution.ts rename to src/080-configuring-typescript/175-tsconfig-bases.solution.ts diff --git a/src/080-configuring-typescript/176-no-unchecked-indexed-access.problem.ts b/src/080-configuring-typescript/176-multiple-tsconfig-json-files.problem.ts similarity index 100% rename from src/080-configuring-typescript/176-no-unchecked-indexed-access.problem.ts rename to src/080-configuring-typescript/176-multiple-tsconfig-json-files.problem.ts diff --git a/src/080-configuring-typescript/176-no-unchecked-indexed-access.solution.ts b/src/080-configuring-typescript/176-multiple-tsconfig-json-files.solution.ts similarity index 100% rename from src/080-configuring-typescript/176-no-unchecked-indexed-access.solution.ts rename to src/080-configuring-typescript/176-multiple-tsconfig-json-files.solution.ts diff --git a/src/080-configuring-typescript/177-creating-declaration-files-and-declaration-maps.problem.ts b/src/080-configuring-typescript/177-extending-from-other-tsconfig-json-files.problem.ts similarity index 100% rename from src/080-configuring-typescript/177-creating-declaration-files-and-declaration-maps.problem.ts rename to src/080-configuring-typescript/177-extending-from-other-tsconfig-json-files.problem.ts diff --git a/src/080-configuring-typescript/177-creating-declaration-files-and-declaration-maps.solution.ts b/src/080-configuring-typescript/177-extending-from-other-tsconfig-json-files.solution.ts similarity index 100% rename from src/080-configuring-typescript/177-creating-declaration-files-and-declaration-maps.solution.ts rename to src/080-configuring-typescript/177-extending-from-other-tsconfig-json-files.solution.ts diff --git a/src/080-configuring-typescript/178-setting-up-types-for-node.problem.ts b/src/080-configuring-typescript/178-project-references.problem.ts similarity index 100% rename from src/080-configuring-typescript/178-setting-up-types-for-node.problem.ts rename to src/080-configuring-typescript/178-project-references.problem.ts diff --git a/src/080-configuring-typescript/178-setting-up-types-for-node.solution.ts b/src/080-configuring-typescript/178-project-references.solution.ts similarity index 100% rename from src/080-configuring-typescript/178-setting-up-types-for-node.solution.ts rename to src/080-configuring-typescript/178-project-references.solution.ts diff --git a/src/080-configuring-typescript/179-set-up-types-for-simple-scripts.problem.ts b/src/080-configuring-typescript/179-jsx.problem.ts similarity index 100% rename from src/080-configuring-typescript/179-set-up-types-for-simple-scripts.problem.ts rename to src/080-configuring-typescript/179-jsx.problem.ts diff --git a/src/080-configuring-typescript/179-set-up-types-for-simple-scripts.solution.ts b/src/080-configuring-typescript/179-jsx.solution.ts similarity index 100% rename from src/080-configuring-typescript/179-set-up-types-for-simple-scripts.solution.ts rename to src/080-configuring-typescript/179-jsx.solution.ts diff --git a/src/080-configuring-typescript/180-set-up-types-for-test-files.problem.ts b/src/080-configuring-typescript/180-rules-that-make-up-strict-mode.problem.ts similarity index 100% rename from src/080-configuring-typescript/180-set-up-types-for-test-files.problem.ts rename to src/080-configuring-typescript/180-rules-that-make-up-strict-mode.problem.ts diff --git a/src/080-configuring-typescript/180-set-up-types-for-test-files.solution.ts b/src/080-configuring-typescript/180-rules-that-make-up-strict-mode.solution.ts similarity index 100% rename from src/080-configuring-typescript/180-set-up-types-for-test-files.solution.ts rename to src/080-configuring-typescript/180-rules-that-make-up-strict-mode.solution.ts diff --git a/src/080-configuring-typescript/181-set-up-types-for-bundled-web-app.problem.ts b/src/080-configuring-typescript/181-no-unchecked-indexed-access.problem.ts similarity index 100% rename from src/080-configuring-typescript/181-set-up-types-for-bundled-web-app.problem.ts rename to src/080-configuring-typescript/181-no-unchecked-indexed-access.problem.ts diff --git a/src/080-configuring-typescript/181-set-up-types-for-bundled-web-app.solution.ts b/src/080-configuring-typescript/181-no-unchecked-indexed-access.solution.ts similarity index 100% rename from src/080-configuring-typescript/181-set-up-types-for-bundled-web-app.solution.ts rename to src/080-configuring-typescript/181-no-unchecked-indexed-access.solution.ts diff --git a/src/085-the-utils-folder/182-intro-to-the-utils-folder.problem.ts b/src/080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.problem.ts similarity index 100% rename from src/085-the-utils-folder/182-intro-to-the-utils-folder.problem.ts rename to src/080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.problem.ts diff --git a/src/085-the-utils-folder/182-intro-to-the-utils-folder.solution.ts b/src/080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.solution.ts similarity index 100% rename from src/085-the-utils-folder/182-intro-to-the-utils-folder.solution.ts rename to src/080-configuring-typescript/182-creating-declaration-files-and-declaration-maps.solution.ts diff --git a/src/085-the-utils-folder/183-generic-functions-without-inference.problem.ts b/src/080-configuring-typescript/183-setting-up-types-for-node.problem.ts similarity index 100% rename from src/085-the-utils-folder/183-generic-functions-without-inference.problem.ts rename to src/080-configuring-typescript/183-setting-up-types-for-node.problem.ts diff --git a/src/085-the-utils-folder/183-generic-functions-without-inference.solution.ts b/src/080-configuring-typescript/183-setting-up-types-for-node.solution.ts similarity index 100% rename from src/085-the-utils-folder/183-generic-functions-without-inference.solution.ts rename to src/080-configuring-typescript/183-setting-up-types-for-node.solution.ts diff --git a/src/085-the-utils-folder/184-type-parameter-defaults-in-generic-functions.problem.ts b/src/080-configuring-typescript/184-set-up-types-for-simple-scripts.problem.ts similarity index 100% rename from src/085-the-utils-folder/184-type-parameter-defaults-in-generic-functions.problem.ts rename to src/080-configuring-typescript/184-set-up-types-for-simple-scripts.problem.ts diff --git a/src/085-the-utils-folder/184-type-parameter-defaults-in-generic-functions.solution.ts b/src/080-configuring-typescript/184-set-up-types-for-simple-scripts.solution.ts similarity index 100% rename from src/085-the-utils-folder/184-type-parameter-defaults-in-generic-functions.solution.ts rename to src/080-configuring-typescript/184-set-up-types-for-simple-scripts.solution.ts diff --git a/src/085-the-utils-folder/185-type-parameter-constraints-with-generic-functions.problem.ts b/src/080-configuring-typescript/185-set-up-types-for-test-files.problem.ts similarity index 100% rename from src/085-the-utils-folder/185-type-parameter-constraints-with-generic-functions.problem.ts rename to src/080-configuring-typescript/185-set-up-types-for-test-files.problem.ts diff --git a/src/085-the-utils-folder/185-type-parameter-constraints-with-generic-functions.solution.ts b/src/080-configuring-typescript/185-set-up-types-for-test-files.solution.ts similarity index 100% rename from src/085-the-utils-folder/185-type-parameter-constraints-with-generic-functions.solution.ts rename to src/080-configuring-typescript/185-set-up-types-for-test-files.solution.ts diff --git a/src/085-the-utils-folder/186-generic-functions-with-inference.problem.ts b/src/080-configuring-typescript/186-set-up-types-for-bundled-web-app.problem.ts similarity index 100% rename from src/085-the-utils-folder/186-generic-functions-with-inference.problem.ts rename to src/080-configuring-typescript/186-set-up-types-for-bundled-web-app.problem.ts diff --git a/src/085-the-utils-folder/186-generic-functions-with-inference.solution.ts b/src/080-configuring-typescript/186-set-up-types-for-bundled-web-app.solution.ts similarity index 100% rename from src/085-the-utils-folder/186-generic-functions-with-inference.solution.ts rename to src/080-configuring-typescript/186-set-up-types-for-bundled-web-app.solution.ts diff --git a/src/085-the-utils-folder/187-multiple-type-arguments.problem.ts b/src/085-the-utils-folder/187-intro-to-the-utils-folder.problem.ts similarity index 100% rename from src/085-the-utils-folder/187-multiple-type-arguments.problem.ts rename to src/085-the-utils-folder/187-intro-to-the-utils-folder.problem.ts diff --git a/src/085-the-utils-folder/187-multiple-type-arguments.solution.ts b/src/085-the-utils-folder/187-intro-to-the-utils-folder.solution.ts similarity index 100% rename from src/085-the-utils-folder/187-multiple-type-arguments.solution.ts rename to src/085-the-utils-folder/187-intro-to-the-utils-folder.solution.ts diff --git a/src/085-the-utils-folder/188-create-group-by-function.problem.ts b/src/085-the-utils-folder/188-generic-functions-without-inference.problem.ts similarity index 100% rename from src/085-the-utils-folder/188-create-group-by-function.problem.ts rename to src/085-the-utils-folder/188-generic-functions-without-inference.problem.ts diff --git a/src/085-the-utils-folder/188-create-group-by-function.solution.ts b/src/085-the-utils-folder/188-generic-functions-without-inference.solution.ts similarity index 100% rename from src/085-the-utils-folder/188-create-group-by-function.solution.ts rename to src/085-the-utils-folder/188-generic-functions-without-inference.solution.ts diff --git a/src/085-the-utils-folder/189-type-predicates.problem.ts b/src/085-the-utils-folder/189-type-parameter-defaults-in-generic-functions.problem.ts similarity index 100% rename from src/085-the-utils-folder/189-type-predicates.problem.ts rename to src/085-the-utils-folder/189-type-parameter-defaults-in-generic-functions.problem.ts diff --git a/src/085-the-utils-folder/189-type-predicates.solution.ts b/src/085-the-utils-folder/189-type-parameter-defaults-in-generic-functions.solution.ts similarity index 100% rename from src/085-the-utils-folder/189-type-predicates.solution.ts rename to src/085-the-utils-folder/189-type-parameter-defaults-in-generic-functions.solution.ts diff --git a/src/085-the-utils-folder/190-assertion-functions.problem.ts b/src/085-the-utils-folder/190-type-parameter-constraints-with-generic-functions.problem.ts similarity index 100% rename from src/085-the-utils-folder/190-assertion-functions.problem.ts rename to src/085-the-utils-folder/190-type-parameter-constraints-with-generic-functions.problem.ts diff --git a/src/085-the-utils-folder/190-assertion-functions.solution.ts b/src/085-the-utils-folder/190-type-parameter-constraints-with-generic-functions.solution.ts similarity index 100% rename from src/085-the-utils-folder/190-assertion-functions.solution.ts rename to src/085-the-utils-folder/190-type-parameter-constraints-with-generic-functions.solution.ts diff --git a/src/085-the-utils-folder/191-generic-functions-with-inference.problem.ts b/src/085-the-utils-folder/191-generic-functions-with-inference.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/191-generic-functions-with-inference.solution.ts b/src/085-the-utils-folder/191-generic-functions-with-inference.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/192-multiple-type-arguments.problem.ts b/src/085-the-utils-folder/192-multiple-type-arguments.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/192-multiple-type-arguments.solution.ts b/src/085-the-utils-folder/192-multiple-type-arguments.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/193-create-group-by-function.problem.ts b/src/085-the-utils-folder/193-create-group-by-function.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/193-create-group-by-function.solution.ts b/src/085-the-utils-folder/193-create-group-by-function.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/194-type-predicates.problem.ts b/src/085-the-utils-folder/194-type-predicates.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/194-type-predicates.solution.ts b/src/085-the-utils-folder/194-type-predicates.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/195-assertion-functions.problem.ts b/src/085-the-utils-folder/195-assertion-functions.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/085-the-utils-folder/195-assertion-functions.solution.ts b/src/085-the-utils-folder/195-assertion-functions.solution.ts new file mode 100644 index 0000000..e69de29