From 24ebc2c2bba7b706dcbb977e88a66783de3bc65e Mon Sep 17 00:00:00 2001 From: Matt Pocock Date: Tue, 29 Aug 2023 14:37:33 +0100 Subject: [PATCH] 2023-08-29T13:37:33.464Z --- ....problem.ts => 057-map-has-doesnt-narrow-map-get.explainer.ts} | 0 ...narrow.problem.ts => 058-throwing-errors-to-narrow.problem.ts} | 0 ...rrow.solution.ts => 058-throwing-errors-to-narrow.solution.ts} | 0 ...lem.ts => 059-narrowing-with-instanceof-statements.problem.ts} | 0 ...on.ts => 059-narrowing-with-instanceof-statements.solution.ts} | 0 ...nts.problem.ts => 060-narrowing-with-in-statements.problem.ts} | 0 ...s.solution.ts => 060-narrowing-with-in-statements.solution.ts} | 0 ...lue.problem.ts => 061-narrowing-unknown-to-a-value.problem.ts} | 0 ...e.solution.ts => 061-narrowing-unknown-to-a-value.solution.ts} | 0 ...arrow.solution.ts => 062-returning-never-to-narrow.problem.ts} | 0 ...g-any.problem.ts => 062-returning-never-to-narrow.solution.ts} | 0 ...rnaries.problem.ts => 063-narrowing-with-ternaries.problem.ts} | 0 ...aries.solution.ts => 063-narrowing-with-ternaries.solution.ts} | 0 ...roblem.ts => 064-narrowing-with-nullish-coalescing.problem.ts} | 0 ...ution.ts => 064-narrowing-with-nullish-coalescing.solution.ts} | 0 .../{064-evolving-any.solution.ts => 065-evolving-any.problem.ts} | 0 ...volving-any-arrays.problem.ts => 065-evolving-any.solution.ts} | 0 ...-any-arrays.solution.ts => 066-evolving-any-arrays.problem.ts} | 0 ...nated-union.problem.ts => 066-evolving-any-arrays.solution.ts} | 0 ...ns.problem.ts => 067-intro-to-discriminated-unions.problem.ts} | 0 ....solution.ts => 067-intro-to-discriminated-unions.solution.ts} | 0 ...blem.ts => 068-destructuring-a-discriminated-union.problem.ts} | 0 ...ion.ts => 068-destructuring-a-discriminated-union.solution.ts} | 0 ...wing-a-discriminated-union-with-a-switch-statement.problem.ts} | 0 ...ing-a-discriminated-union-with-a-switch-statement.solution.ts} | 0 ...e.explainer.ts => 070-narrowing-with-switch-true.explainer.ts} | 0 ...blem.ts => 071-destructuring-a-discriminated-tuple.problem.ts} | 0 ...ion.ts => 071-destructuring-a-discriminated-tuple.solution.ts} | 0 ...-booleans.problem.ts => 072-discriminated-booleans.problem.ts} | 0 ...ooleans.solution.ts => 072-discriminated-booleans.solution.ts} | 0 ...n.ts => 073-adding-defaults-to-discriminated-union.problem.ts} | 0 .../073-adding-defaults-to-discriminated-union.solution.ts} | 0 ...roblem.ts => 074-extend-object-using-intersections.problem.ts} | 0 ...ution.ts => 074-extend-object-using-intersections.solution.ts} | 0 ...s.problem.ts => 075-extend-object-using-interfaces.problem.ts} | 0 ...tion.1.ts => 075-extend-object-using-interfaces.solution.1.ts} | 0 ...tion.2.ts => 075-extend-object-using-interfaces.solution.2.ts} | 0 ...076-compare-between-intersections-and-interfaces.explainer.ts} | 0 ...ndex-signatures.problem.ts => 077-index-signatures.problem.ts} | 0 ...ignatures.solution.1.ts => 077-index-signatures.solution.1.ts} | 0 ...ignatures.solution.2.ts => 077-index-signatures.solution.2.ts} | 0 ...ignatures.solution.3.ts => 077-index-signatures.solution.3.ts} | 0 ...ignatures.solution.4.ts => 077-index-signatures.solution.4.ts} | 0 ...oblem.ts => 078-index-signatures-with-defined-keys.problem.ts} | 0 ....1.ts => 078-index-signatures-with-defined-keys.solution.1.ts} | 0 ....2.ts => 078-index-signatures-with-defined-keys.solution.2.ts} | 0 ...erty-key-type.solution.ts => 079-property-key-type.problem.ts} | 0 ...union-as-keys.problem.ts => 079-property-key-type.solution.ts} | 0 ....solution.ts => 080-record-type-with-union-as-keys.problem.ts} | 0 .../080-record-type-with-union-as-keys.solution.ts} | 0 ...roblem.ts => 081-declaration-merging-of-interfaces.problem.ts} | 0 ...ution.ts => 081-declaration-merging-of-interfaces.solution.ts} | 0 ...ick-type-helper.problem.ts => 082-pick-type-helper.problem.ts} | 0 ...pe-helper.solution.1.ts => 082-pick-type-helper.solution.1.ts} | 0 ...pe-helper.solution.2.ts => 082-pick-type-helper.solution.2.ts} | 0 ...problem.ts => 083-common-keys-of-unions-of-objects.problem.ts} | 0 ...lution.ts => 083-common-keys-of-unions-of-objects.solution.ts} | 0 ...mit-type-helper.problem.ts => 084-omit-type-helper.problem.ts} | 0 ...pe-helper.solution.1.ts => 084-omit-type-helper.solution.1.ts} | 0 ...pe-helper.solution.2.ts => 084-omit-type-helper.solution.2.ts} | 0 ...omit.explainer.ts => 085-no-autocomplete-on-omit.explainer.ts} | 0 ...ute.explainer.1.ts => 086-omit-cant-distribute.explainer.1.ts} | 0 ...ute.explainer.2.ts => 086-omit-cant-distribute.explainer.2.ts} | 0 ...problem.ts => 087-omit-or-pick-more-than-one-thing.problem.ts} | 0 ...on.1.ts => 087-omit-or-pick-more-than-one-thing.solution.1.ts} | 0 ...on.2.ts => 087-omit-or-pick-more-than-one-thing.solution.2.ts} | 0 ...-type-helper.problem.ts => 088-partial-type-helper.problem.ts} | 0 ...ype-helper.solution.ts => 088-partial-type-helper.solution.ts} | 0 ...-helper.explainer.ts => 089-required-type-helper.explainer.ts} | 0 ...ference.solution.ts => 090-let-and-const-inference.problem.ts} | 0 ...ference.problem.ts => 090-let-and-const-inference.solution.ts} | 0 ...rence.solution.ts => 091-object-property-inference.problem.ts} | 0 ...rties.problem.ts => 091-object-property-inference.solution.ts} | 0 ...es.problem.ts => 092-narrowing-in-different-scopes.problem.ts} | 0 ...ution.1.ts => 092-narrowing-in-different-scopes.solution.1.ts} | 0 ...ution.2.ts => 092-narrowing-in-different-scopes.solution.2.ts} | 0 ...ties.solution.ts => 093-readonly-object-properties.problem.ts} | 0 ...onst.problem.ts => 093-readonly-object-properties.solution.ts} | 0 ...o-to-as-const.solution.ts => 094-intro-to-as-const.problem.ts} | 0 ...object-freeze.problem.ts => 094-intro-to-as-const.solution.ts} | 0 ...reeze.solution.ts => 095-as-const-vs-object-freeze.problem.ts} | 0 ...rrays.problem.ts => 095-as-const-vs-object-freeze.solution.ts} | 0 ...readonly-arrays.solution.ts => 096-readonly-arrays.problem.ts} | 0 ...readonly-arrays.problem.ts => 096-readonly-arrays.solution.ts} | 0 ...ays.solution.ts => 097-includes-on-readonly-arrays.problem.ts} | 0 ...ays.problem.ts => 097-includes-on-readonly-arrays.solution.ts} | 0 ...lution.ts => 098-readonly-arrays-vs-mutable-arrays.problem.ts} | 0 ...oblem.ts => 098-readonly-arrays-vs-mutable-arrays.solution.ts} | 0 ...ts => 099-as-const-to-make-functions-infer-a-tuple.problem.ts} | 0 ...s => 099-as-const-to-make-functions-infer-a-tuple.solution.ts} | 0 ...an-make-strings-infer-as-their-literals-in-objects.problem.ts} | 0 ...n-make-strings-infer-as-their-literals-in-objects.solution.ts} | 0 ...tand-classes.solution.ts => 101-understand-classes.problem.ts} | 0 ...e-properties.problem.ts => 101-understand-classes.solution.ts} | 0 ...s.solution.ts => 102-public-and-private-properties.problem.ts} | 0 ...t.problem.ts => 102-public-and-private-properties.solution.ts} | 0 ...n-javascript.solution.ts => 103-hash-in-javascript.problem.ts} | 0 ...s-properties.problem.ts => 103-hash-in-javascript.solution.ts} | 0 ...rties.solution.ts => 104-optional-class-properties.problem.ts} | 0 ...rties.problem.ts => 104-optional-class-properties.solution.ts} | 0 ...rties.solution.ts => 105-readonly-class-properties.problem.ts} | 0 ...thods.problem.ts => 105-readonly-class-properties.solution.ts} | 0 ...105-class-methods.solution.ts => 106-class-methods.problem.ts} | 0 .../{106-decorators.problem.ts => 106-class-methods.solution.ts} | 0 .../{106-decorators.solution.ts => 107-decorators.problem.ts} | 0 ...lementing-interfaces.problem.ts => 107-decorators.solution.ts} | 0 ...erfaces.solution.ts => 108-implementing-interfaces.problem.ts} | 0 ...nctions.problem.ts => 108-implementing-interfaces.solution.ts} | 0 ...ctions.solution.ts => 109-typing-this-in-functions.problem.ts} | 0 ...ctions.problem.ts => 109-typing-this-in-functions.solution.ts} | 0 ....solution.ts => 110-can-you-type-this-in-functions.problem.ts} | 0 .../110-can-you-type-this-in-functions.solution.ts} | 0 ...ses.solution.ts => 111-auto-assignation-in-classes.problem.ts} | 0 ...ums.problem.ts => 111-auto-assignation-in-classes.solution.ts} | 0 .../{111-enums.solution.ts => 112-enums.problem.ts} | 0 .../{112-const-enums.problem.ts => 112-enums.solution.ts} | 0 .../{112-const-enums.solution.ts => 113-const-enums.problem.ts} | 0 .../{113-namespaces.problem.ts => 113-const-enums.solution.ts} | 0 .../{113-namespaces.solution.ts => 114-namespaces.problem.ts} | 0 ...d-as-types-or-values.problem.ts => 114-namespaces.solution.ts} | 0 ...s => 115-namespaces-can-be-used-as-types-or-values.problem.ts} | 0 ... => 115-namespaces-can-be-used-as-types-or-values.solution.ts} | 0 ...olution.ts => 116-namespaces-can-declaration-merge.problem.ts} | 0 ...roblem.ts => 116-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 ...paces.solution.ts => 118-should-you-use-namespaces.problem.ts} | 0 .../118-should-you-use-namespaces.solution.ts} | 0 ...{118-any.solution.ts => 119-dont-annotate-too-much.problem.ts} | 0 ...-use-any.problem.ts => 119-dont-annotate-too-much.solution.ts} | 0 ...{119-global-typings-use-any.solution.ts => 120-any.problem.ts} | 0 .../{120-as-and-as-any.problem.ts => 120-any.solution.ts} | 0 ...d-as-any.solution.ts => 121-global-typings-use-any.problem.ts} | 0 ...ts-of-as.problem.ts => 121-global-typings-use-any.solution.ts} | 0 ...{121-limits-of-as.solution.ts => 122-as-and-as-any.problem.ts} | 0 .../{122-ts-ignore.problem.ts => 122-as-and-as-any.solution.ts} | 0 .../{122-ts-ignore.solution.ts => 123-limits-of-as.problem.ts} | 0 ...23-ts-expect-error.problem.ts => 123-limits-of-as.solution.ts} | 0 .../{123-ts-expect-error.solution.ts => 124-ts-ignore.problem.ts} | 0 .../{124-satisfies.problem.ts => 124-ts-ignore.solution.ts} | 0 .../{124-satisfies.solution.ts => 125-ts-expect-error.problem.ts} | 0 ...s-with-as-const.problem.ts => 125-ts-expect-error.solution.ts} | 0 ...tisfies-with-as-const.solution.ts => 126-satisfies.problem.ts} | 0 ...ors-a-function-throws.problem.ts => 126-satisfies.solution.ts} | 0 ...-throws.solution.ts => 127-satisfies-with-as-const.problem.ts} | 0 ...arnings.problem.ts => 127-satisfies-with-as-const.solution.ts} | 0 ...tion.ts => 128-annotating-errors-a-function-throws.problem.ts} | 0 ...lem.ts => 128-annotating-errors-a-function-throws.solution.ts} | 0 ...ries.solution.ts => 129-excess-properties-warnings.problem.ts} | 0 ...ping.problem.ts => 129-excess-properties-warnings.solution.ts} | 0 ....solution.ts => 130-object-keys-and-object-entries.problem.ts} | 0 ....problem.ts => 130-object-keys-and-object-entries.solution.ts} | 0 ...ng.solution.ts => 131-structural-vs-nominal-typing.problem.ts} | 0 ...ns.problem.ts => 131-structural-vs-nominal-typing.solution.ts} | 0 ...lution.ts => 132-how-enums-break-structural-typing.problem.ts} | 0 ...oblem.ts => 132-how-enums-break-structural-typing.solution.ts} | 0 ...object-type.solution.ts => 133-unions-of-functions.problem.ts} | 0 ...mpty-object.problem.ts => 133-unions-of-functions.solution.ts} | 0 ...-empty-object.solution.ts => 134-empty-object-type.problem.ts} | 0 .../134-empty-object-type.solution.ts} | 0 .../135-truly-empty-object.problem.ts} | 0 .../135-truly-empty-object.solution.ts} | 0 ...alues-from-types.solution.ts => 136-typeof-keyword.problem.ts} | 0 ...e-and-type-world.problem.ts => 136-typeof-keyword.solution.ts} | 0 ...olution.ts => 137-create-runtime-values-from-types.problem.ts} | 0 ...roblem.ts => 137-create-runtime-values-from-types.solution.ts} | 0 ...> 138-classes-and-enums-cross-value-and-type-world.problem.ts} | 0 ... 138-classes-and-enums-cross-value-and-type-world.solution.ts} | 0 ...lution.ts => 139-this-crosses-value-and-type-world.problem.ts} | 0 ...oblem.ts => 139-this-crosses-value-and-type-world.solution.ts} | 0 ...ameters-type-helper.solution.ts => 140-return-type.problem.ts} | 0 .../{140-keyof.problem.ts => 140-return-type.solution.ts} | 0 ...40-keyof.solution.ts => 141-parameters-type-helper.problem.ts} | 0 ...ss-types.problem.ts => 141-parameters-type-helper.solution.ts} | 0 ...{141-indexed-access-types.solution.ts => 142-keyof.problem.ts} | 0 ...s-to-indexed-access-types.problem.ts => 142-keyof.solution.ts} | 0 ...cess-types.solution.ts => 143-indexed-access-types.problem.ts} | 0 ...ccess-type.problem.ts => 143-indexed-access-types.solution.ts} | 0 ...tion.ts => 144-pass-unions-to-indexed-access-types.problem.ts} | 0 ...lem.ts => 144-pass-unions-to-indexed-access-types.solution.ts} | 0 ...n.ts => 145-pass-keyof-into-an-indexed-access-type.problem.ts} | 0 ....ts => 145-pass-keyof-into-an-indexed-access-type.solution.ts} | 0 ...tion.ts => 146-create-an-enum-from-as-const-object.problem.ts} | 0 ...lem.ts => 146-create-an-enum-from-as-const-object.solution.ts} | 0 ...on.ts => 147-create-a-union-from-an-as-const-array.problem.ts} | 0 ...m.ts => 147-create-a-union-from-an-as-const-array.solution.ts} | 0 ....solution.ts => 148-should-i-use-enums-or-as-const.problem.ts} | 0 .../148-should-i-use-enums-or-as-const.solution.ts} | 0 .../149-using-numeric-comparators-on-enums.problem.ts} | 0 .../149-using-numeric-comparators-on-enums.solution.ts} | 0 ...etection-force.solution.ts => 150-module-or-script.problem.ts} | 0 ...olated-modules.problem.ts => 150-module-or-script.solution.ts} | 0 ...-modules.solution.ts => 151-module-detection-force.problem.ts} | 0 ...s-vs-esm.problem.ts => 151-module-detection-force.solution.ts} | 0 ...151-cjs-vs-esm.solution.ts => 152-isolated-modules.problem.ts} | 0 ...er-or-nodenext.problem.ts => 152-isolated-modules.solution.ts} | 0 ...-bundler-or-nodenext.solution.ts => 153-cjs-vs-esm.problem.ts} | 0 ...53-declaration-files.problem.ts => 153-cjs-vs-esm.solution.ts} | 0 ...on.ts => 154-module-resolution-bundler-or-nodenext.problem.ts} | 0 ...m.ts => 154-module-resolution-bundler-or-nodenext.solution.ts} | 0 ...ib-check-true.solution.ts => 155-declaration-files.problem.ts} | 0 ...es-or-scripts.problem.ts => 155-declaration-files.solution.ts} | 0 ...-or-scripts.solution.ts => 156-skip-lib-check-true.problem.ts} | 0 ...pe-js-files.problem.ts => 156-skip-lib-check-true.solution.ts} | 0 ...=> 157-declaration-files-can-be-modules-or-scripts.problem.ts} | 0 ...> 157-declaration-files-can-be-modules-or-scripts.solution.ts} | 0 ...158-declaration-files-can-be-used-to-type-js-files.problem.ts} | 0 ...58-declaration-files-can-be-used-to-type-js-files.solution.ts} | 0 ...olution.ts => 159-should-you-use-declaration-files.problem.ts} | 0 ...roblem.ts => 159-should-you-use-declaration-files.solution.ts} | 0 ...-d-ts-files.solution.ts => 160-resolve-json-module.problem.ts} | 0 .../160-resolve-json-module.solution.ts} | 0 .../161-json-d-ts-files.problem.ts} | 0 .../161-json-d-ts-files.solution.ts} | 0 ...lution.ts => 162-ambient-context-and-declare-const.problem.ts} | 0 ...oblem.ts => 162-ambient-context-and-declare-const.solution.ts} | 0 ...-single-tsconfig.solution.ts => 163-declare-global.problem.ts} | 0 ...declaration-file.problem.ts => 163-declare-global.solution.ts} | 0 ...on.ts => 164-globals-are-tied-to-a-single-tsconfig.problem.ts} | 0 ...m.ts => 164-globals-are-tied-to-a-single-tsconfig.solution.ts} | 0 ...ution.ts => 165-declare-global-or-declaration-file.problem.ts} | 0 ...blem.ts => 165-declare-global-or-declaration-file.solution.ts} | 0 ...n-declare-module.solution.ts => 166-declare-module.problem.ts} | 0 ...modifying-window.problem.ts => 166-declare-module.solution.ts} | 0 ...ndow.solution.ts => 167-wildcard-in-declare-module.problem.ts} | 0 ...this.problem.ts => 167-wildcard-in-declare-module.solution.ts} | 0 ...ing-globalthis.solution.ts => 168-modifying-window.problem.ts} | 0 ...ng-process-env.problem.ts => 168-modifying-window.solution.ts} | 0 ...rocess-env.solution.ts => 169-modifying-globalthis.problem.ts} | 0 .../169-modifying-globalthis.solution.ts} | 0 .../170-modifying-process-env.problem.ts} | 0 .../170-modifying-process-env.solution.ts} | 0 ...eclare-module-for-overriding-third-party-libraries.problem.ts} | 0 ...clare-module-for-overriding-third-party-libraries.solution.ts} | 0 ...get-to-change-lib-d-ts.solution.ts => 172-lib-d-ts.problem.ts} | 0 .../{172-lib-dom-d-ts.problem.ts => 172-lib-d-ts.solution.ts} | 0 ...solution.ts => 173-using-target-to-change-lib-d-ts.problem.ts} | 0 ...problem.ts => 173-using-target-to-change-lib-d-ts.solution.ts} | 0 ...-third-party-types.solution.ts => 174-lib-dom-d-ts.problem.ts} | 0 ...-roots-in-tsconfig.problem.ts => 174-lib-dom-d-ts.solution.ts} | 0 ...s-in-tsconfig.solution.ts => 175-third-party-types.problem.ts} | 0 ...ith-libraries.problem.ts => 175-third-party-types.solution.ts} | 0 ...ibraries.solution.ts => 176-type-roots-in-tsconfig.problem.ts} | 0 .../176-type-roots-in-tsconfig.solution.ts} | 0 .../177-types-that-ship-with-libraries.problem.ts} | 0 .../177-types-that-ship-with-libraries.solution.ts} | 0 ....solution.ts => 178-domain-modelling-in-typescript.problem.ts} | 0 ....problem.ts => 178-domain-modelling-in-typescript.solution.ts} | 0 ...arameters.solution.ts => 179-intro-to-helper-types.problem.ts} | 0 ...arameters.problem.ts => 179-intro-to-helper-types.solution.ts} | 0 ...meters.solution.ts => 180-multiple-type-parameters.problem.ts} | 0 ...raints.problem.ts => 180-multiple-type-parameters.solution.ts} | 0 ...traints.solution.ts => 181-default-type-parameters.problem.ts} | 0 ...of-omit.problem.ts => 181-default-type-parameters.solution.ts} | 0 ...of-omit.solution.ts => 182-type-helper-constraints.problem.ts} | 0 ...l-types.problem.ts => 182-type-helper-constraints.solution.ts} | 0 ...l-types.solution.ts => 183-tighter-version-of-omit.problem.ts} | 0 ...l-types.problem.ts => 183-tighter-version-of-omit.solution.ts} | 0 ...al-types.solution.ts => 184-template-literal-types.problem.ts} | 0 ...ed-types.problem.ts => 184-template-literal-types.solution.ts} | 0 ...ts => 185-passing-unions-to-template-literal-types.problem.ts} | 0 ...s => 185-passing-unions-to-template-literal-types.solution.ts} | 0 ...as-in-mapped-types.solution.ts => 186-mapped-types.problem.ts} | 0 .../186-mapped-types.solution.ts} | 0 .../187-as-in-mapped-types.problem.ts} | 0 .../187-as-in-mapped-types.solution.ts} | 0 ...-bases.solution.ts => 188-introduction-to-tsconfig.problem.ts} | 0 ...-files.problem.ts => 188-introduction-to-tsconfig.solution.ts} | 0 ...onfig-json-files.solution.ts => 189-tsconfig-bases.problem.ts} | 0 ...onfig-json-files.problem.ts => 189-tsconfig-bases.solution.ts} | 0 ...es.solution.ts => 190-multiple-tsconfig-json-files.problem.ts} | 0 ...es.problem.ts => 190-multiple-tsconfig-json-files.solution.ts} | 0 ...ts => 191-extending-from-other-tsconfig-json-files.problem.ts} | 0 ...s => 191-extending-from-other-tsconfig-json-files.solution.ts} | 0 .../{191-jsx.solution.ts => 192-project-references.problem.ts} | 0 ...-strict-mode.problem.ts => 192-project-references.solution.ts} | 0 ...es-that-make-up-strict-mode.solution.ts => 193-jsx.problem.ts} | 0 ...no-unchecked-indexed-access.problem.ts => 193-jsx.solution.ts} | 0 ....solution.ts => 194-rules-that-make-up-strict-mode.problem.ts} | 0 ....problem.ts => 194-rules-that-make-up-strict-mode.solution.ts} | 0 ...aps.solution.ts => 195-no-unchecked-indexed-access.problem.ts} | 0 ...ode.problem.ts => 195-no-unchecked-indexed-access.solution.ts} | 0 ...96-creating-declaration-files-and-declaration-maps.problem.ts} | 0 ...6-creating-declaration-files-and-declaration-maps.solution.ts} | 0 ...ripts.solution.ts => 197-setting-up-types-for-node.problem.ts} | 0 ...files.problem.ts => 197-setting-up-types-for-node.solution.ts} | 0 ...solution.ts => 198-set-up-types-for-simple-scripts.problem.ts} | 0 ...problem.ts => 198-set-up-types-for-simple-scripts.solution.ts} | 0 ...app.solution.ts => 199-set-up-types-for-test-files.problem.ts} | 0 .../199-set-up-types-for-test-files.solution.ts} | 0 .../200-set-up-types-for-bundled-web-app.problem.ts} | 0 .../200-set-up-types-for-bundled-web-app.solution.ts} | 0 ...rence.solution.ts => 201-intro-to-the-utils-folder.problem.ts} | 0 ...tions.problem.ts => 201-intro-to-the-utils-folder.solution.ts} | 0 ...tion.ts => 202-generic-functions-without-inference.problem.ts} | 0 ...lem.ts => 202-generic-functions-without-inference.solution.ts} | 0 ...> 203-type-parameter-defaults-in-generic-functions.problem.ts} | 0 ... 203-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 ...olution.ts => 205-generic-functions-with-inference.problem.ts} | 0 ...roblem.ts => 205-generic-functions-with-inference.solution.ts} | 0 ...solution.ts => 206-as-any-inside-generic-functions.problem.ts} | 0 ...problem.ts => 206-as-any-inside-generic-functions.solution.ts} | 0 ...dicates.solution.ts => 207-multiple-type-arguments.problem.ts} | 0 ...nctions.problem.ts => 207-multiple-type-arguments.solution.ts} | 0 ...ctions.solution.ts => 208-create-group-by-function.problem.ts} | 0 ...rloads.problem.ts => 208-create-group-by-function.solution.ts} | 0 ...ction-overloads.solution.ts => 209-type-predicates.problem.ts} | 0 .../209-type-predicates.solution.ts} | 0 .../210-assertion-functions.problem.ts} | 0 .../210-assertion-functions.solution.ts} | 0 .../211-function-overloads.problem.ts} | 0 .../211-function-overloads.solution.ts} | 0 ...ut-your-types.solution.ts => 212-setting-up-eslint.problem.ts} | 0 ...tion-of-types.problem.ts => 212-setting-up-eslint.solution.ts} | 0 ...ion-of-types.solution.ts => 213-hungarian-notation.problem.ts} | 0 ...-rule-or-not.problem.ts => 213-hungarian-notation.solution.ts} | 0 ...-or-not.solution.ts => 214-where-to-put-your-types.problem.ts} | 0 ...-or-not.problem.ts => 214-where-to-put-your-types.solution.ts} | 0 ...ypes-or-not.solution.ts => 215-colocation-of-types.problem.ts} | 0 ...xpect-error.problem.ts => 215-colocation-of-types.solution.ts} | 0 ...-error.solution.ts => 216-explicit-any-rule-or-not.problem.ts} | 0 ...t-type.problem.ts => 216-explicit-any-rule-or-not.solution.ts} | 0 ...pe.solution.ts => 217-explicit-return-types-or-not.problem.ts} | 0 ...me.problem.ts => 217-explicit-return-types-or-not.solution.ts} | 0 ...tion.ts => 218-any-vs-ts-ignore-vs-ts-expect-error.problem.ts} | 0 ...lem.ts => 218-any-vs-ts-ignore-vs-ts-expect-error.solution.ts} | 0 ...types-vs-interfaces.solution.ts => 219-result-type.problem.ts} | 0 .../219-result-type.solution.ts} | 0 ...220-dont-declare-type-and-value-with-the-same-name.problem.ts} | 0 ...20-dont-declare-type-and-value-with-the-same-name.solution.ts} | 0 .../221-types-vs-interfaces.problem.ts} | 0 .../221-types-vs-interfaces.solution.ts} | 0 ...-uppercase-function-object-string-boolean-as-types.problem.ts} | 0 ...-uppercase-function-object-string-boolean-as-types.solution.ts | 0 .../223-dont-use-globally-available-types.problem.ts | 0 .../223-dont-use-globally-available-types.solution.ts | 0 .../224-how-strict-should-you-configure-ts.problem.ts | 0 .../224-how-strict-should-you-configure-ts.solution.ts | 0 .../225-strict-file-by-file-vs-ramp-up-strictness.problem.ts | 0 .../225-strict-file-by-file-vs-ramp-up-strictness.solution.ts | 0 .../226-dependencies-first.problem.ts | 0 .../226-dependencies-first.solution.ts | 0 src/095-migrating-from-javascript/227-madge.problem.ts | 0 src/095-migrating-from-javascript/227-madge.solution.ts | 0 346 files changed, 0 insertions(+), 0 deletions(-) rename src/018-unions-and-narrowing/{061-returning-never-to-narrow.problem.ts => 057-map-has-doesnt-narrow-map-get.explainer.ts} (100%) rename src/018-unions-and-narrowing/{057-throwing-errors-to-narrow.problem.ts => 058-throwing-errors-to-narrow.problem.ts} (100%) rename src/018-unions-and-narrowing/{057-throwing-errors-to-narrow.solution.ts => 058-throwing-errors-to-narrow.solution.ts} (100%) rename src/018-unions-and-narrowing/{058-narrowing-with-instanceof-statements.problem.ts => 059-narrowing-with-instanceof-statements.problem.ts} (100%) rename src/018-unions-and-narrowing/{058-narrowing-with-instanceof-statements.solution.ts => 059-narrowing-with-instanceof-statements.solution.ts} (100%) rename src/018-unions-and-narrowing/{059-narrowing-with-in-statements.problem.ts => 060-narrowing-with-in-statements.problem.ts} (100%) rename src/018-unions-and-narrowing/{059-narrowing-with-in-statements.solution.ts => 060-narrowing-with-in-statements.solution.ts} (100%) rename src/018-unions-and-narrowing/{060-narrowing-unknown-to-a-value.problem.ts => 061-narrowing-unknown-to-a-value.problem.ts} (100%) rename src/018-unions-and-narrowing/{060-narrowing-unknown-to-a-value.solution.ts => 061-narrowing-unknown-to-a-value.solution.ts} (100%) rename src/018-unions-and-narrowing/{061-returning-never-to-narrow.solution.ts => 062-returning-never-to-narrow.problem.ts} (100%) rename src/018-unions-and-narrowing/{064-evolving-any.problem.ts => 062-returning-never-to-narrow.solution.ts} (100%) rename src/018-unions-and-narrowing/{062-narrowing-with-ternaries.problem.ts => 063-narrowing-with-ternaries.problem.ts} (100%) rename src/018-unions-and-narrowing/{062-narrowing-with-ternaries.solution.ts => 063-narrowing-with-ternaries.solution.ts} (100%) rename src/018-unions-and-narrowing/{063-narrowing-with-nullish-coalescing.problem.ts => 064-narrowing-with-nullish-coalescing.problem.ts} (100%) rename src/018-unions-and-narrowing/{063-narrowing-with-nullish-coalescing.solution.ts => 064-narrowing-with-nullish-coalescing.solution.ts} (100%) rename src/018-unions-and-narrowing/{064-evolving-any.solution.ts => 065-evolving-any.problem.ts} (100%) rename src/018-unions-and-narrowing/{065-evolving-any-arrays.problem.ts => 065-evolving-any.solution.ts} (100%) rename src/018-unions-and-narrowing/{065-evolving-any-arrays.solution.ts => 066-evolving-any-arrays.problem.ts} (100%) rename src/018-unions-and-narrowing/{072-adding-defaults-to-discriminated-union.problem.ts => 066-evolving-any-arrays.solution.ts} (100%) rename src/018-unions-and-narrowing/{066-intro-to-discriminated-unions.problem.ts => 067-intro-to-discriminated-unions.problem.ts} (100%) rename src/018-unions-and-narrowing/{066-intro-to-discriminated-unions.solution.ts => 067-intro-to-discriminated-unions.solution.ts} (100%) rename src/018-unions-and-narrowing/{067-destructuring-a-discriminated-union.problem.ts => 068-destructuring-a-discriminated-union.problem.ts} (100%) rename src/018-unions-and-narrowing/{067-destructuring-a-discriminated-union.solution.ts => 068-destructuring-a-discriminated-union.solution.ts} (100%) rename src/018-unions-and-narrowing/{068-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts => 069-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts} (100%) rename src/018-unions-and-narrowing/{068-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts => 069-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts} (100%) rename src/018-unions-and-narrowing/{069-narrowing-with-switch-true.explainer.ts => 070-narrowing-with-switch-true.explainer.ts} (100%) rename src/018-unions-and-narrowing/{070-destructuring-a-discriminated-tuple.problem.ts => 071-destructuring-a-discriminated-tuple.problem.ts} (100%) rename src/018-unions-and-narrowing/{070-destructuring-a-discriminated-tuple.solution.ts => 071-destructuring-a-discriminated-tuple.solution.ts} (100%) rename src/018-unions-and-narrowing/{071-discriminated-booleans.problem.ts => 072-discriminated-booleans.problem.ts} (100%) rename src/018-unions-and-narrowing/{071-discriminated-booleans.solution.ts => 072-discriminated-booleans.solution.ts} (100%) rename src/018-unions-and-narrowing/{072-adding-defaults-to-discriminated-union.solution.ts => 073-adding-defaults-to-discriminated-union.problem.ts} (100%) rename src/{020-objects/078-property-key-type.problem.ts => 018-unions-and-narrowing/073-adding-defaults-to-discriminated-union.solution.ts} (100%) rename src/020-objects/{073-extend-object-using-intersections.problem.ts => 074-extend-object-using-intersections.problem.ts} (100%) rename src/020-objects/{073-extend-object-using-intersections.solution.ts => 074-extend-object-using-intersections.solution.ts} (100%) rename src/020-objects/{074-extend-object-using-interfaces.problem.ts => 075-extend-object-using-interfaces.problem.ts} (100%) rename src/020-objects/{074-extend-object-using-interfaces.solution.1.ts => 075-extend-object-using-interfaces.solution.1.ts} (100%) rename src/020-objects/{074-extend-object-using-interfaces.solution.2.ts => 075-extend-object-using-interfaces.solution.2.ts} (100%) rename src/020-objects/{075-compare-between-intersections-and-interfaces.explainer.ts => 076-compare-between-intersections-and-interfaces.explainer.ts} (100%) rename src/020-objects/{076-index-signatures.problem.ts => 077-index-signatures.problem.ts} (100%) rename src/020-objects/{076-index-signatures.solution.1.ts => 077-index-signatures.solution.1.ts} (100%) rename src/020-objects/{076-index-signatures.solution.2.ts => 077-index-signatures.solution.2.ts} (100%) rename src/020-objects/{076-index-signatures.solution.3.ts => 077-index-signatures.solution.3.ts} (100%) rename src/020-objects/{076-index-signatures.solution.4.ts => 077-index-signatures.solution.4.ts} (100%) rename src/020-objects/{077-index-signatures-with-defined-keys.problem.ts => 078-index-signatures-with-defined-keys.problem.ts} (100%) rename src/020-objects/{077-index-signatures-with-defined-keys.solution.1.ts => 078-index-signatures-with-defined-keys.solution.1.ts} (100%) rename src/020-objects/{077-index-signatures-with-defined-keys.solution.2.ts => 078-index-signatures-with-defined-keys.solution.2.ts} (100%) rename src/020-objects/{078-property-key-type.solution.ts => 079-property-key-type.problem.ts} (100%) rename src/020-objects/{079-record-type-with-union-as-keys.problem.ts => 079-property-key-type.solution.ts} (100%) rename src/020-objects/{079-record-type-with-union-as-keys.solution.ts => 080-record-type-with-union-as-keys.problem.ts} (100%) rename src/{028-mutability/089-let-and-const-inference.problem.ts => 020-objects/080-record-type-with-union-as-keys.solution.ts} (100%) rename src/020-objects/{080-declaration-merging-of-interfaces.problem.ts => 081-declaration-merging-of-interfaces.problem.ts} (100%) rename src/020-objects/{080-declaration-merging-of-interfaces.solution.ts => 081-declaration-merging-of-interfaces.solution.ts} (100%) rename src/020-objects/{081-pick-type-helper.problem.ts => 082-pick-type-helper.problem.ts} (100%) rename src/020-objects/{081-pick-type-helper.solution.1.ts => 082-pick-type-helper.solution.1.ts} (100%) rename src/020-objects/{081-pick-type-helper.solution.2.ts => 082-pick-type-helper.solution.2.ts} (100%) rename src/020-objects/{082-common-keys-of-unions-of-objects.problem.ts => 083-common-keys-of-unions-of-objects.problem.ts} (100%) rename src/020-objects/{082-common-keys-of-unions-of-objects.solution.ts => 083-common-keys-of-unions-of-objects.solution.ts} (100%) rename src/020-objects/{083-omit-type-helper.problem.ts => 084-omit-type-helper.problem.ts} (100%) rename src/020-objects/{083-omit-type-helper.solution.1.ts => 084-omit-type-helper.solution.1.ts} (100%) rename src/020-objects/{083-omit-type-helper.solution.2.ts => 084-omit-type-helper.solution.2.ts} (100%) rename src/020-objects/{084-no-autocomplete-on-omit.explainer.ts => 085-no-autocomplete-on-omit.explainer.ts} (100%) rename src/020-objects/{085-omit-cant-distribute.explainer.1.ts => 086-omit-cant-distribute.explainer.1.ts} (100%) rename src/020-objects/{085-omit-cant-distribute.explainer.2.ts => 086-omit-cant-distribute.explainer.2.ts} (100%) rename src/020-objects/{086-omit-or-pick-more-than-one-thing.problem.ts => 087-omit-or-pick-more-than-one-thing.problem.ts} (100%) rename src/020-objects/{086-omit-or-pick-more-than-one-thing.solution.1.ts => 087-omit-or-pick-more-than-one-thing.solution.1.ts} (100%) rename src/020-objects/{086-omit-or-pick-more-than-one-thing.solution.2.ts => 087-omit-or-pick-more-than-one-thing.solution.2.ts} (100%) rename src/020-objects/{087-partial-type-helper.problem.ts => 088-partial-type-helper.problem.ts} (100%) rename src/020-objects/{087-partial-type-helper.solution.ts => 088-partial-type-helper.solution.ts} (100%) rename src/020-objects/{088-required-type-helper.explainer.ts => 089-required-type-helper.explainer.ts} (100%) rename src/028-mutability/{089-let-and-const-inference.solution.ts => 090-let-and-const-inference.problem.ts} (100%) rename src/028-mutability/{090-object-property-inference.problem.ts => 090-let-and-const-inference.solution.ts} (100%) rename src/028-mutability/{090-object-property-inference.solution.ts => 091-object-property-inference.problem.ts} (100%) rename src/028-mutability/{092-readonly-object-properties.problem.ts => 091-object-property-inference.solution.ts} (100%) rename src/028-mutability/{091-narrowing-in-different-scopes.problem.ts => 092-narrowing-in-different-scopes.problem.ts} (100%) rename src/028-mutability/{091-narrowing-in-different-scopes.solution.1.ts => 092-narrowing-in-different-scopes.solution.1.ts} (100%) rename src/028-mutability/{091-narrowing-in-different-scopes.solution.2.ts => 092-narrowing-in-different-scopes.solution.2.ts} (100%) rename src/028-mutability/{092-readonly-object-properties.solution.ts => 093-readonly-object-properties.problem.ts} (100%) rename src/028-mutability/{093-intro-to-as-const.problem.ts => 093-readonly-object-properties.solution.ts} (100%) rename src/028-mutability/{093-intro-to-as-const.solution.ts => 094-intro-to-as-const.problem.ts} (100%) rename src/028-mutability/{094-as-const-vs-object-freeze.problem.ts => 094-intro-to-as-const.solution.ts} (100%) rename src/028-mutability/{094-as-const-vs-object-freeze.solution.ts => 095-as-const-vs-object-freeze.problem.ts} (100%) rename src/028-mutability/{095-readonly-arrays.problem.ts => 095-as-const-vs-object-freeze.solution.ts} (100%) rename src/028-mutability/{095-readonly-arrays.solution.ts => 096-readonly-arrays.problem.ts} (100%) rename src/028-mutability/{096-includes-on-readonly-arrays.problem.ts => 096-readonly-arrays.solution.ts} (100%) rename src/028-mutability/{096-includes-on-readonly-arrays.solution.ts => 097-includes-on-readonly-arrays.problem.ts} (100%) rename src/028-mutability/{097-readonly-arrays-vs-mutable-arrays.problem.ts => 097-includes-on-readonly-arrays.solution.ts} (100%) rename src/028-mutability/{097-readonly-arrays-vs-mutable-arrays.solution.ts => 098-readonly-arrays-vs-mutable-arrays.problem.ts} (100%) rename src/028-mutability/{098-as-const-to-make-functions-infer-a-tuple.problem.ts => 098-readonly-arrays-vs-mutable-arrays.solution.ts} (100%) rename src/028-mutability/{098-as-const-to-make-functions-infer-a-tuple.solution.ts => 099-as-const-to-make-functions-infer-a-tuple.problem.ts} (100%) rename src/028-mutability/{099-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts => 099-as-const-to-make-functions-infer-a-tuple.solution.ts} (100%) rename src/028-mutability/{099-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts => 100-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts} (100%) rename src/{030-classes/100-understand-classes.problem.ts => 028-mutability/100-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts} (100%) rename src/030-classes/{100-understand-classes.solution.ts => 101-understand-classes.problem.ts} (100%) rename src/030-classes/{101-public-and-private-properties.problem.ts => 101-understand-classes.solution.ts} (100%) rename src/030-classes/{101-public-and-private-properties.solution.ts => 102-public-and-private-properties.problem.ts} (100%) rename src/030-classes/{102-hash-in-javascript.problem.ts => 102-public-and-private-properties.solution.ts} (100%) rename src/030-classes/{102-hash-in-javascript.solution.ts => 103-hash-in-javascript.problem.ts} (100%) rename src/030-classes/{103-optional-class-properties.problem.ts => 103-hash-in-javascript.solution.ts} (100%) rename src/030-classes/{103-optional-class-properties.solution.ts => 104-optional-class-properties.problem.ts} (100%) rename src/030-classes/{104-readonly-class-properties.problem.ts => 104-optional-class-properties.solution.ts} (100%) rename src/030-classes/{104-readonly-class-properties.solution.ts => 105-readonly-class-properties.problem.ts} (100%) rename src/030-classes/{105-class-methods.problem.ts => 105-readonly-class-properties.solution.ts} (100%) rename src/030-classes/{105-class-methods.solution.ts => 106-class-methods.problem.ts} (100%) rename src/030-classes/{106-decorators.problem.ts => 106-class-methods.solution.ts} (100%) rename src/030-classes/{106-decorators.solution.ts => 107-decorators.problem.ts} (100%) rename src/030-classes/{107-implementing-interfaces.problem.ts => 107-decorators.solution.ts} (100%) rename src/030-classes/{107-implementing-interfaces.solution.ts => 108-implementing-interfaces.problem.ts} (100%) rename src/030-classes/{108-typing-this-in-functions.problem.ts => 108-implementing-interfaces.solution.ts} (100%) rename src/030-classes/{108-typing-this-in-functions.solution.ts => 109-typing-this-in-functions.problem.ts} (100%) rename src/030-classes/{109-can-you-type-this-in-functions.problem.ts => 109-typing-this-in-functions.solution.ts} (100%) rename src/030-classes/{109-can-you-type-this-in-functions.solution.ts => 110-can-you-type-this-in-functions.problem.ts} (100%) rename src/{032-typescript-only-features/110-auto-assignation-in-classes.problem.ts => 030-classes/110-can-you-type-this-in-functions.solution.ts} (100%) rename src/032-typescript-only-features/{110-auto-assignation-in-classes.solution.ts => 111-auto-assignation-in-classes.problem.ts} (100%) rename src/032-typescript-only-features/{111-enums.problem.ts => 111-auto-assignation-in-classes.solution.ts} (100%) rename src/032-typescript-only-features/{111-enums.solution.ts => 112-enums.problem.ts} (100%) rename src/032-typescript-only-features/{112-const-enums.problem.ts => 112-enums.solution.ts} (100%) rename src/032-typescript-only-features/{112-const-enums.solution.ts => 113-const-enums.problem.ts} (100%) rename src/032-typescript-only-features/{113-namespaces.problem.ts => 113-const-enums.solution.ts} (100%) rename src/032-typescript-only-features/{113-namespaces.solution.ts => 114-namespaces.problem.ts} (100%) rename src/032-typescript-only-features/{114-namespaces-can-be-used-as-types-or-values.problem.ts => 114-namespaces.solution.ts} (100%) rename src/032-typescript-only-features/{114-namespaces-can-be-used-as-types-or-values.solution.ts => 115-namespaces-can-be-used-as-types-or-values.problem.ts} (100%) rename src/032-typescript-only-features/{115-namespaces-can-declaration-merge.problem.ts => 115-namespaces-can-be-used-as-types-or-values.solution.ts} (100%) rename src/032-typescript-only-features/{115-namespaces-can-declaration-merge.solution.ts => 116-namespaces-can-declaration-merge.problem.ts} (100%) rename src/032-typescript-only-features/{116-interfaces-within-namespaces-can-declaration-merge.problem.ts => 116-namespaces-can-declaration-merge.solution.ts} (100%) rename src/032-typescript-only-features/{116-interfaces-within-namespaces-can-declaration-merge.solution.ts => 117-interfaces-within-namespaces-can-declaration-merge.problem.ts} (100%) rename src/032-typescript-only-features/{117-should-you-use-namespaces.problem.ts => 117-interfaces-within-namespaces-can-declaration-merge.solution.ts} (100%) rename src/032-typescript-only-features/{117-should-you-use-namespaces.solution.ts => 118-should-you-use-namespaces.problem.ts} (100%) rename src/{035-understanding-the-compiler/118-any.problem.ts => 032-typescript-only-features/118-should-you-use-namespaces.solution.ts} (100%) rename src/035-understanding-the-compiler/{118-any.solution.ts => 119-dont-annotate-too-much.problem.ts} (100%) rename src/035-understanding-the-compiler/{119-global-typings-use-any.problem.ts => 119-dont-annotate-too-much.solution.ts} (100%) rename src/035-understanding-the-compiler/{119-global-typings-use-any.solution.ts => 120-any.problem.ts} (100%) rename src/035-understanding-the-compiler/{120-as-and-as-any.problem.ts => 120-any.solution.ts} (100%) rename src/035-understanding-the-compiler/{120-as-and-as-any.solution.ts => 121-global-typings-use-any.problem.ts} (100%) rename src/035-understanding-the-compiler/{121-limits-of-as.problem.ts => 121-global-typings-use-any.solution.ts} (100%) rename src/035-understanding-the-compiler/{121-limits-of-as.solution.ts => 122-as-and-as-any.problem.ts} (100%) rename src/035-understanding-the-compiler/{122-ts-ignore.problem.ts => 122-as-and-as-any.solution.ts} (100%) rename src/035-understanding-the-compiler/{122-ts-ignore.solution.ts => 123-limits-of-as.problem.ts} (100%) rename src/035-understanding-the-compiler/{123-ts-expect-error.problem.ts => 123-limits-of-as.solution.ts} (100%) rename src/035-understanding-the-compiler/{123-ts-expect-error.solution.ts => 124-ts-ignore.problem.ts} (100%) rename src/035-understanding-the-compiler/{124-satisfies.problem.ts => 124-ts-ignore.solution.ts} (100%) rename src/035-understanding-the-compiler/{124-satisfies.solution.ts => 125-ts-expect-error.problem.ts} (100%) rename src/035-understanding-the-compiler/{125-satisfies-with-as-const.problem.ts => 125-ts-expect-error.solution.ts} (100%) rename src/035-understanding-the-compiler/{125-satisfies-with-as-const.solution.ts => 126-satisfies.problem.ts} (100%) rename src/035-understanding-the-compiler/{126-annotating-errors-a-function-throws.problem.ts => 126-satisfies.solution.ts} (100%) rename src/035-understanding-the-compiler/{126-annotating-errors-a-function-throws.solution.ts => 127-satisfies-with-as-const.problem.ts} (100%) rename src/035-understanding-the-compiler/{127-excess-properties-warnings.problem.ts => 127-satisfies-with-as-const.solution.ts} (100%) rename src/035-understanding-the-compiler/{127-excess-properties-warnings.solution.ts => 128-annotating-errors-a-function-throws.problem.ts} (100%) rename src/035-understanding-the-compiler/{128-object-keys-and-object-entries.problem.ts => 128-annotating-errors-a-function-throws.solution.ts} (100%) rename src/035-understanding-the-compiler/{128-object-keys-and-object-entries.solution.ts => 129-excess-properties-warnings.problem.ts} (100%) rename src/035-understanding-the-compiler/{129-structural-vs-nominal-typing.problem.ts => 129-excess-properties-warnings.solution.ts} (100%) rename src/035-understanding-the-compiler/{129-structural-vs-nominal-typing.solution.ts => 130-object-keys-and-object-entries.problem.ts} (100%) rename src/035-understanding-the-compiler/{130-how-enums-break-structural-typing.problem.ts => 130-object-keys-and-object-entries.solution.ts} (100%) rename src/035-understanding-the-compiler/{130-how-enums-break-structural-typing.solution.ts => 131-structural-vs-nominal-typing.problem.ts} (100%) rename src/035-understanding-the-compiler/{131-unions-of-functions.problem.ts => 131-structural-vs-nominal-typing.solution.ts} (100%) rename src/035-understanding-the-compiler/{131-unions-of-functions.solution.ts => 132-how-enums-break-structural-typing.problem.ts} (100%) rename src/035-understanding-the-compiler/{132-empty-object-type.problem.ts => 132-how-enums-break-structural-typing.solution.ts} (100%) rename src/035-understanding-the-compiler/{132-empty-object-type.solution.ts => 133-unions-of-functions.problem.ts} (100%) rename src/035-understanding-the-compiler/{133-truly-empty-object.problem.ts => 133-unions-of-functions.solution.ts} (100%) rename src/035-understanding-the-compiler/{133-truly-empty-object.solution.ts => 134-empty-object-type.problem.ts} (100%) rename src/{040-deriving-types-from-values/134-typeof-keyword.problem.ts => 035-understanding-the-compiler/134-empty-object-type.solution.ts} (100%) rename src/{040-deriving-types-from-values/134-typeof-keyword.solution.ts => 035-understanding-the-compiler/135-truly-empty-object.problem.ts} (100%) rename src/{040-deriving-types-from-values/135-create-runtime-values-from-types.problem.ts => 035-understanding-the-compiler/135-truly-empty-object.solution.ts} (100%) rename src/040-deriving-types-from-values/{135-create-runtime-values-from-types.solution.ts => 136-typeof-keyword.problem.ts} (100%) rename src/040-deriving-types-from-values/{136-classes-and-enums-cross-value-and-type-world.problem.ts => 136-typeof-keyword.solution.ts} (100%) rename src/040-deriving-types-from-values/{136-classes-and-enums-cross-value-and-type-world.solution.ts => 137-create-runtime-values-from-types.problem.ts} (100%) rename src/040-deriving-types-from-values/{137-this-crosses-value-and-type-world.problem.ts => 137-create-runtime-values-from-types.solution.ts} (100%) rename src/040-deriving-types-from-values/{137-this-crosses-value-and-type-world.solution.ts => 138-classes-and-enums-cross-value-and-type-world.problem.ts} (100%) rename src/040-deriving-types-from-values/{138-return-type.problem.ts => 138-classes-and-enums-cross-value-and-type-world.solution.ts} (100%) rename src/040-deriving-types-from-values/{138-return-type.solution.ts => 139-this-crosses-value-and-type-world.problem.ts} (100%) rename src/040-deriving-types-from-values/{139-parameters-type-helper.problem.ts => 139-this-crosses-value-and-type-world.solution.ts} (100%) rename src/040-deriving-types-from-values/{139-parameters-type-helper.solution.ts => 140-return-type.problem.ts} (100%) rename src/040-deriving-types-from-values/{140-keyof.problem.ts => 140-return-type.solution.ts} (100%) rename src/040-deriving-types-from-values/{140-keyof.solution.ts => 141-parameters-type-helper.problem.ts} (100%) rename src/040-deriving-types-from-values/{141-indexed-access-types.problem.ts => 141-parameters-type-helper.solution.ts} (100%) rename src/040-deriving-types-from-values/{141-indexed-access-types.solution.ts => 142-keyof.problem.ts} (100%) rename src/040-deriving-types-from-values/{142-pass-unions-to-indexed-access-types.problem.ts => 142-keyof.solution.ts} (100%) rename src/040-deriving-types-from-values/{142-pass-unions-to-indexed-access-types.solution.ts => 143-indexed-access-types.problem.ts} (100%) rename src/040-deriving-types-from-values/{143-pass-keyof-into-an-indexed-access-type.problem.ts => 143-indexed-access-types.solution.ts} (100%) rename src/040-deriving-types-from-values/{143-pass-keyof-into-an-indexed-access-type.solution.ts => 144-pass-unions-to-indexed-access-types.problem.ts} (100%) rename src/040-deriving-types-from-values/{144-create-an-enum-from-as-const-object.problem.ts => 144-pass-unions-to-indexed-access-types.solution.ts} (100%) rename src/040-deriving-types-from-values/{144-create-an-enum-from-as-const-object.solution.ts => 145-pass-keyof-into-an-indexed-access-type.problem.ts} (100%) rename src/040-deriving-types-from-values/{145-create-a-union-from-an-as-const-array.problem.ts => 145-pass-keyof-into-an-indexed-access-type.solution.ts} (100%) rename src/040-deriving-types-from-values/{145-create-a-union-from-an-as-const-array.solution.ts => 146-create-an-enum-from-as-const-object.problem.ts} (100%) rename src/040-deriving-types-from-values/{146-should-i-use-enums-or-as-const.problem.ts => 146-create-an-enum-from-as-const-object.solution.ts} (100%) rename src/040-deriving-types-from-values/{146-should-i-use-enums-or-as-const.solution.ts => 147-create-a-union-from-an-as-const-array.problem.ts} (100%) rename src/040-deriving-types-from-values/{147-using-numeric-comparators-on-enums.problem.ts => 147-create-a-union-from-an-as-const-array.solution.ts} (100%) rename src/040-deriving-types-from-values/{147-using-numeric-comparators-on-enums.solution.ts => 148-should-i-use-enums-or-as-const.problem.ts} (100%) rename src/{060-modules-and-namespaces/148-module-or-script.problem.ts => 040-deriving-types-from-values/148-should-i-use-enums-or-as-const.solution.ts} (100%) rename src/{060-modules-and-namespaces/148-module-or-script.solution.ts => 040-deriving-types-from-values/149-using-numeric-comparators-on-enums.problem.ts} (100%) rename src/{060-modules-and-namespaces/149-module-detection-force.problem.ts => 040-deriving-types-from-values/149-using-numeric-comparators-on-enums.solution.ts} (100%) rename src/060-modules-and-namespaces/{149-module-detection-force.solution.ts => 150-module-or-script.problem.ts} (100%) rename src/060-modules-and-namespaces/{150-isolated-modules.problem.ts => 150-module-or-script.solution.ts} (100%) rename src/060-modules-and-namespaces/{150-isolated-modules.solution.ts => 151-module-detection-force.problem.ts} (100%) rename src/060-modules-and-namespaces/{151-cjs-vs-esm.problem.ts => 151-module-detection-force.solution.ts} (100%) rename src/060-modules-and-namespaces/{151-cjs-vs-esm.solution.ts => 152-isolated-modules.problem.ts} (100%) rename src/060-modules-and-namespaces/{152-module-resolution-bundler-or-nodenext.problem.ts => 152-isolated-modules.solution.ts} (100%) rename src/060-modules-and-namespaces/{152-module-resolution-bundler-or-nodenext.solution.ts => 153-cjs-vs-esm.problem.ts} (100%) rename src/060-modules-and-namespaces/{153-declaration-files.problem.ts => 153-cjs-vs-esm.solution.ts} (100%) rename src/060-modules-and-namespaces/{153-declaration-files.solution.ts => 154-module-resolution-bundler-or-nodenext.problem.ts} (100%) rename src/060-modules-and-namespaces/{154-skip-lib-check-true.problem.ts => 154-module-resolution-bundler-or-nodenext.solution.ts} (100%) rename src/060-modules-and-namespaces/{154-skip-lib-check-true.solution.ts => 155-declaration-files.problem.ts} (100%) rename src/060-modules-and-namespaces/{155-declaration-files-can-be-modules-or-scripts.problem.ts => 155-declaration-files.solution.ts} (100%) rename src/060-modules-and-namespaces/{155-declaration-files-can-be-modules-or-scripts.solution.ts => 156-skip-lib-check-true.problem.ts} (100%) rename src/060-modules-and-namespaces/{156-declaration-files-can-be-used-to-type-js-files.problem.ts => 156-skip-lib-check-true.solution.ts} (100%) rename src/060-modules-and-namespaces/{156-declaration-files-can-be-used-to-type-js-files.solution.ts => 157-declaration-files-can-be-modules-or-scripts.problem.ts} (100%) rename src/060-modules-and-namespaces/{157-should-you-use-declaration-files.problem.ts => 157-declaration-files-can-be-modules-or-scripts.solution.ts} (100%) rename src/060-modules-and-namespaces/{157-should-you-use-declaration-files.solution.ts => 158-declaration-files-can-be-used-to-type-js-files.problem.ts} (100%) rename src/060-modules-and-namespaces/{158-resolve-json-module.problem.ts => 158-declaration-files-can-be-used-to-type-js-files.solution.ts} (100%) rename src/060-modules-and-namespaces/{158-resolve-json-module.solution.ts => 159-should-you-use-declaration-files.problem.ts} (100%) rename src/060-modules-and-namespaces/{159-json-d-ts-files.problem.ts => 159-should-you-use-declaration-files.solution.ts} (100%) rename src/060-modules-and-namespaces/{159-json-d-ts-files.solution.ts => 160-resolve-json-module.problem.ts} (100%) rename src/{062-the-global-namespace/160-ambient-context-and-declare-const.problem.ts => 060-modules-and-namespaces/160-resolve-json-module.solution.ts} (100%) rename src/{062-the-global-namespace/160-ambient-context-and-declare-const.solution.ts => 060-modules-and-namespaces/161-json-d-ts-files.problem.ts} (100%) rename src/{062-the-global-namespace/161-declare-global.problem.ts => 060-modules-and-namespaces/161-json-d-ts-files.solution.ts} (100%) rename src/062-the-global-namespace/{161-declare-global.solution.ts => 162-ambient-context-and-declare-const.problem.ts} (100%) rename src/062-the-global-namespace/{162-globals-are-tied-to-a-single-tsconfig.problem.ts => 162-ambient-context-and-declare-const.solution.ts} (100%) rename src/062-the-global-namespace/{162-globals-are-tied-to-a-single-tsconfig.solution.ts => 163-declare-global.problem.ts} (100%) rename src/062-the-global-namespace/{163-declare-global-or-declaration-file.problem.ts => 163-declare-global.solution.ts} (100%) rename src/062-the-global-namespace/{163-declare-global-or-declaration-file.solution.ts => 164-globals-are-tied-to-a-single-tsconfig.problem.ts} (100%) rename src/062-the-global-namespace/{164-declare-module.problem.ts => 164-globals-are-tied-to-a-single-tsconfig.solution.ts} (100%) rename src/062-the-global-namespace/{164-declare-module.solution.ts => 165-declare-global-or-declaration-file.problem.ts} (100%) rename src/062-the-global-namespace/{165-wildcard-in-declare-module.problem.ts => 165-declare-global-or-declaration-file.solution.ts} (100%) rename src/062-the-global-namespace/{165-wildcard-in-declare-module.solution.ts => 166-declare-module.problem.ts} (100%) rename src/062-the-global-namespace/{166-modifying-window.problem.ts => 166-declare-module.solution.ts} (100%) rename src/062-the-global-namespace/{166-modifying-window.solution.ts => 167-wildcard-in-declare-module.problem.ts} (100%) rename src/062-the-global-namespace/{167-modifying-globalthis.problem.ts => 167-wildcard-in-declare-module.solution.ts} (100%) rename src/062-the-global-namespace/{167-modifying-globalthis.solution.ts => 168-modifying-window.problem.ts} (100%) rename src/062-the-global-namespace/{168-modifying-process-env.problem.ts => 168-modifying-window.solution.ts} (100%) rename src/062-the-global-namespace/{168-modifying-process-env.solution.ts => 169-modifying-globalthis.problem.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/169-declare-module-for-overriding-third-party-libraries.problem.ts => 062-the-global-namespace/169-modifying-globalthis.solution.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/169-declare-module-for-overriding-third-party-libraries.solution.ts => 062-the-global-namespace/170-modifying-process-env.problem.ts} (100%) rename src/{065-four-spaces-of-typescript-declarations/170-lib-d-ts.problem.ts => 062-the-global-namespace/170-modifying-process-env.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{170-lib-d-ts.solution.ts => 171-declare-module-for-overriding-third-party-libraries.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{171-using-target-to-change-lib-d-ts.problem.ts => 171-declare-module-for-overriding-third-party-libraries.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{171-using-target-to-change-lib-d-ts.solution.ts => 172-lib-d-ts.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{172-lib-dom-d-ts.problem.ts => 172-lib-d-ts.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{172-lib-dom-d-ts.solution.ts => 173-using-target-to-change-lib-d-ts.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{173-third-party-types.problem.ts => 173-using-target-to-change-lib-d-ts.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{173-third-party-types.solution.ts => 174-lib-dom-d-ts.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{174-type-roots-in-tsconfig.problem.ts => 174-lib-dom-d-ts.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{174-type-roots-in-tsconfig.solution.ts => 175-third-party-types.problem.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{175-types-that-ship-with-libraries.problem.ts => 175-third-party-types.solution.ts} (100%) rename src/065-four-spaces-of-typescript-declarations/{175-types-that-ship-with-libraries.solution.ts => 176-type-roots-in-tsconfig.problem.ts} (100%) rename src/{075-designing-your-types/176-domain-modelling-in-typescript.problem.ts => 065-four-spaces-of-typescript-declarations/176-type-roots-in-tsconfig.solution.ts} (100%) rename src/{075-designing-your-types/176-domain-modelling-in-typescript.solution.ts => 065-four-spaces-of-typescript-declarations/177-types-that-ship-with-libraries.problem.ts} (100%) rename src/{075-designing-your-types/177-intro-to-helper-types.problem.ts => 065-four-spaces-of-typescript-declarations/177-types-that-ship-with-libraries.solution.ts} (100%) rename src/075-designing-your-types/{177-intro-to-helper-types.solution.ts => 178-domain-modelling-in-typescript.problem.ts} (100%) rename src/075-designing-your-types/{178-multiple-type-parameters.problem.ts => 178-domain-modelling-in-typescript.solution.ts} (100%) rename src/075-designing-your-types/{178-multiple-type-parameters.solution.ts => 179-intro-to-helper-types.problem.ts} (100%) rename src/075-designing-your-types/{179-default-type-parameters.problem.ts => 179-intro-to-helper-types.solution.ts} (100%) rename src/075-designing-your-types/{179-default-type-parameters.solution.ts => 180-multiple-type-parameters.problem.ts} (100%) rename src/075-designing-your-types/{180-type-helper-constraints.problem.ts => 180-multiple-type-parameters.solution.ts} (100%) rename src/075-designing-your-types/{180-type-helper-constraints.solution.ts => 181-default-type-parameters.problem.ts} (100%) rename src/075-designing-your-types/{181-tighter-version-of-omit.problem.ts => 181-default-type-parameters.solution.ts} (100%) rename src/075-designing-your-types/{181-tighter-version-of-omit.solution.ts => 182-type-helper-constraints.problem.ts} (100%) rename src/075-designing-your-types/{182-template-literal-types.problem.ts => 182-type-helper-constraints.solution.ts} (100%) rename src/075-designing-your-types/{182-template-literal-types.solution.ts => 183-tighter-version-of-omit.problem.ts} (100%) rename src/075-designing-your-types/{183-passing-unions-to-template-literal-types.problem.ts => 183-tighter-version-of-omit.solution.ts} (100%) rename src/075-designing-your-types/{183-passing-unions-to-template-literal-types.solution.ts => 184-template-literal-types.problem.ts} (100%) rename src/075-designing-your-types/{184-mapped-types.problem.ts => 184-template-literal-types.solution.ts} (100%) rename src/075-designing-your-types/{184-mapped-types.solution.ts => 185-passing-unions-to-template-literal-types.problem.ts} (100%) rename src/075-designing-your-types/{185-as-in-mapped-types.problem.ts => 185-passing-unions-to-template-literal-types.solution.ts} (100%) rename src/075-designing-your-types/{185-as-in-mapped-types.solution.ts => 186-mapped-types.problem.ts} (100%) rename src/{080-configuring-typescript/186-introduction-to-tsconfig.problem.ts => 075-designing-your-types/186-mapped-types.solution.ts} (100%) rename src/{080-configuring-typescript/186-introduction-to-tsconfig.solution.ts => 075-designing-your-types/187-as-in-mapped-types.problem.ts} (100%) rename src/{080-configuring-typescript/187-tsconfig-bases.problem.ts => 075-designing-your-types/187-as-in-mapped-types.solution.ts} (100%) rename src/080-configuring-typescript/{187-tsconfig-bases.solution.ts => 188-introduction-to-tsconfig.problem.ts} (100%) rename src/080-configuring-typescript/{188-multiple-tsconfig-json-files.problem.ts => 188-introduction-to-tsconfig.solution.ts} (100%) rename src/080-configuring-typescript/{188-multiple-tsconfig-json-files.solution.ts => 189-tsconfig-bases.problem.ts} (100%) rename src/080-configuring-typescript/{189-extending-from-other-tsconfig-json-files.problem.ts => 189-tsconfig-bases.solution.ts} (100%) rename src/080-configuring-typescript/{189-extending-from-other-tsconfig-json-files.solution.ts => 190-multiple-tsconfig-json-files.problem.ts} (100%) rename src/080-configuring-typescript/{190-project-references.problem.ts => 190-multiple-tsconfig-json-files.solution.ts} (100%) rename src/080-configuring-typescript/{190-project-references.solution.ts => 191-extending-from-other-tsconfig-json-files.problem.ts} (100%) rename src/080-configuring-typescript/{191-jsx.problem.ts => 191-extending-from-other-tsconfig-json-files.solution.ts} (100%) rename src/080-configuring-typescript/{191-jsx.solution.ts => 192-project-references.problem.ts} (100%) rename src/080-configuring-typescript/{192-rules-that-make-up-strict-mode.problem.ts => 192-project-references.solution.ts} (100%) rename src/080-configuring-typescript/{192-rules-that-make-up-strict-mode.solution.ts => 193-jsx.problem.ts} (100%) rename src/080-configuring-typescript/{193-no-unchecked-indexed-access.problem.ts => 193-jsx.solution.ts} (100%) rename src/080-configuring-typescript/{193-no-unchecked-indexed-access.solution.ts => 194-rules-that-make-up-strict-mode.problem.ts} (100%) rename src/080-configuring-typescript/{194-creating-declaration-files-and-declaration-maps.problem.ts => 194-rules-that-make-up-strict-mode.solution.ts} (100%) rename src/080-configuring-typescript/{194-creating-declaration-files-and-declaration-maps.solution.ts => 195-no-unchecked-indexed-access.problem.ts} (100%) rename src/080-configuring-typescript/{195-setting-up-types-for-node.problem.ts => 195-no-unchecked-indexed-access.solution.ts} (100%) rename src/080-configuring-typescript/{195-setting-up-types-for-node.solution.ts => 196-creating-declaration-files-and-declaration-maps.problem.ts} (100%) rename src/080-configuring-typescript/{196-set-up-types-for-simple-scripts.problem.ts => 196-creating-declaration-files-and-declaration-maps.solution.ts} (100%) rename src/080-configuring-typescript/{196-set-up-types-for-simple-scripts.solution.ts => 197-setting-up-types-for-node.problem.ts} (100%) rename src/080-configuring-typescript/{197-set-up-types-for-test-files.problem.ts => 197-setting-up-types-for-node.solution.ts} (100%) rename src/080-configuring-typescript/{197-set-up-types-for-test-files.solution.ts => 198-set-up-types-for-simple-scripts.problem.ts} (100%) rename src/080-configuring-typescript/{198-set-up-types-for-bundled-web-app.problem.ts => 198-set-up-types-for-simple-scripts.solution.ts} (100%) rename src/080-configuring-typescript/{198-set-up-types-for-bundled-web-app.solution.ts => 199-set-up-types-for-test-files.problem.ts} (100%) rename src/{085-the-utils-folder/199-intro-to-the-utils-folder.problem.ts => 080-configuring-typescript/199-set-up-types-for-test-files.solution.ts} (100%) rename src/{085-the-utils-folder/199-intro-to-the-utils-folder.solution.ts => 080-configuring-typescript/200-set-up-types-for-bundled-web-app.problem.ts} (100%) rename src/{085-the-utils-folder/200-generic-functions-without-inference.problem.ts => 080-configuring-typescript/200-set-up-types-for-bundled-web-app.solution.ts} (100%) rename src/085-the-utils-folder/{200-generic-functions-without-inference.solution.ts => 201-intro-to-the-utils-folder.problem.ts} (100%) rename src/085-the-utils-folder/{201-type-parameter-defaults-in-generic-functions.problem.ts => 201-intro-to-the-utils-folder.solution.ts} (100%) rename src/085-the-utils-folder/{201-type-parameter-defaults-in-generic-functions.solution.ts => 202-generic-functions-without-inference.problem.ts} (100%) rename src/085-the-utils-folder/{202-type-parameter-constraints-with-generic-functions.problem.ts => 202-generic-functions-without-inference.solution.ts} (100%) rename src/085-the-utils-folder/{202-type-parameter-constraints-with-generic-functions.solution.ts => 203-type-parameter-defaults-in-generic-functions.problem.ts} (100%) rename src/085-the-utils-folder/{203-generic-functions-with-inference.problem.ts => 203-type-parameter-defaults-in-generic-functions.solution.ts} (100%) rename src/085-the-utils-folder/{203-generic-functions-with-inference.solution.ts => 204-type-parameter-constraints-with-generic-functions.problem.ts} (100%) rename src/085-the-utils-folder/{204-multiple-type-arguments.problem.ts => 204-type-parameter-constraints-with-generic-functions.solution.ts} (100%) rename src/085-the-utils-folder/{204-multiple-type-arguments.solution.ts => 205-generic-functions-with-inference.problem.ts} (100%) rename src/085-the-utils-folder/{205-create-group-by-function.problem.ts => 205-generic-functions-with-inference.solution.ts} (100%) rename src/085-the-utils-folder/{205-create-group-by-function.solution.ts => 206-as-any-inside-generic-functions.problem.ts} (100%) rename src/085-the-utils-folder/{206-type-predicates.problem.ts => 206-as-any-inside-generic-functions.solution.ts} (100%) rename src/085-the-utils-folder/{206-type-predicates.solution.ts => 207-multiple-type-arguments.problem.ts} (100%) rename src/085-the-utils-folder/{207-assertion-functions.problem.ts => 207-multiple-type-arguments.solution.ts} (100%) rename src/085-the-utils-folder/{207-assertion-functions.solution.ts => 208-create-group-by-function.problem.ts} (100%) rename src/085-the-utils-folder/{208-function-overloads.problem.ts => 208-create-group-by-function.solution.ts} (100%) rename src/085-the-utils-folder/{208-function-overloads.solution.ts => 209-type-predicates.problem.ts} (100%) rename src/{090-the-style-guide/209-setting-up-eslint.problem.ts => 085-the-utils-folder/209-type-predicates.solution.ts} (100%) rename src/{090-the-style-guide/209-setting-up-eslint.solution.ts => 085-the-utils-folder/210-assertion-functions.problem.ts} (100%) rename src/{090-the-style-guide/210-hungarian-notation.problem.ts => 085-the-utils-folder/210-assertion-functions.solution.ts} (100%) rename src/{090-the-style-guide/210-hungarian-notation.solution.ts => 085-the-utils-folder/211-function-overloads.problem.ts} (100%) rename src/{090-the-style-guide/211-where-to-put-your-types.problem.ts => 085-the-utils-folder/211-function-overloads.solution.ts} (100%) rename src/090-the-style-guide/{211-where-to-put-your-types.solution.ts => 212-setting-up-eslint.problem.ts} (100%) rename src/090-the-style-guide/{212-colocation-of-types.problem.ts => 212-setting-up-eslint.solution.ts} (100%) rename src/090-the-style-guide/{212-colocation-of-types.solution.ts => 213-hungarian-notation.problem.ts} (100%) rename src/090-the-style-guide/{213-explicit-any-rule-or-not.problem.ts => 213-hungarian-notation.solution.ts} (100%) rename src/090-the-style-guide/{213-explicit-any-rule-or-not.solution.ts => 214-where-to-put-your-types.problem.ts} (100%) rename src/090-the-style-guide/{214-explicit-return-types-or-not.problem.ts => 214-where-to-put-your-types.solution.ts} (100%) rename src/090-the-style-guide/{214-explicit-return-types-or-not.solution.ts => 215-colocation-of-types.problem.ts} (100%) rename src/090-the-style-guide/{215-any-vs-ts-ignore-vs-ts-expect-error.problem.ts => 215-colocation-of-types.solution.ts} (100%) rename src/090-the-style-guide/{215-any-vs-ts-ignore-vs-ts-expect-error.solution.ts => 216-explicit-any-rule-or-not.problem.ts} (100%) rename src/090-the-style-guide/{216-result-type.problem.ts => 216-explicit-any-rule-or-not.solution.ts} (100%) rename src/090-the-style-guide/{216-result-type.solution.ts => 217-explicit-return-types-or-not.problem.ts} (100%) rename src/090-the-style-guide/{217-dont-declare-type-and-value-with-the-same-name.problem.ts => 217-explicit-return-types-or-not.solution.ts} (100%) rename src/090-the-style-guide/{217-dont-declare-type-and-value-with-the-same-name.solution.ts => 218-any-vs-ts-ignore-vs-ts-expect-error.problem.ts} (100%) rename src/090-the-style-guide/{218-types-vs-interfaces.problem.ts => 218-any-vs-ts-ignore-vs-ts-expect-error.solution.ts} (100%) rename src/090-the-style-guide/{218-types-vs-interfaces.solution.ts => 219-result-type.problem.ts} (100%) rename src/{095-migrating-from-javascript/219-strict-file-by-file-vs-ramp-up-strictness.problem.ts => 090-the-style-guide/219-result-type.solution.ts} (100%) rename src/{095-migrating-from-javascript/219-strict-file-by-file-vs-ramp-up-strictness.solution.ts => 090-the-style-guide/220-dont-declare-type-and-value-with-the-same-name.problem.ts} (100%) rename src/{095-migrating-from-javascript/220-dependencies-first.problem.ts => 090-the-style-guide/220-dont-declare-type-and-value-with-the-same-name.solution.ts} (100%) rename src/{095-migrating-from-javascript/220-dependencies-first.solution.ts => 090-the-style-guide/221-types-vs-interfaces.problem.ts} (100%) rename src/{095-migrating-from-javascript/221-madge.problem.ts => 090-the-style-guide/221-types-vs-interfaces.solution.ts} (100%) rename src/{095-migrating-from-javascript/221-madge.solution.ts => 090-the-style-guide/222-dont-use-uppercase-function-object-string-boolean-as-types.problem.ts} (100%) create mode 100644 src/090-the-style-guide/222-dont-use-uppercase-function-object-string-boolean-as-types.solution.ts create mode 100644 src/090-the-style-guide/223-dont-use-globally-available-types.problem.ts create mode 100644 src/090-the-style-guide/223-dont-use-globally-available-types.solution.ts create mode 100644 src/090-the-style-guide/224-how-strict-should-you-configure-ts.problem.ts create mode 100644 src/090-the-style-guide/224-how-strict-should-you-configure-ts.solution.ts create mode 100644 src/095-migrating-from-javascript/225-strict-file-by-file-vs-ramp-up-strictness.problem.ts create mode 100644 src/095-migrating-from-javascript/225-strict-file-by-file-vs-ramp-up-strictness.solution.ts create mode 100644 src/095-migrating-from-javascript/226-dependencies-first.problem.ts create mode 100644 src/095-migrating-from-javascript/226-dependencies-first.solution.ts create mode 100644 src/095-migrating-from-javascript/227-madge.problem.ts create mode 100644 src/095-migrating-from-javascript/227-madge.solution.ts diff --git a/src/018-unions-and-narrowing/061-returning-never-to-narrow.problem.ts b/src/018-unions-and-narrowing/057-map-has-doesnt-narrow-map-get.explainer.ts similarity index 100% rename from src/018-unions-and-narrowing/061-returning-never-to-narrow.problem.ts rename to src/018-unions-and-narrowing/057-map-has-doesnt-narrow-map-get.explainer.ts diff --git a/src/018-unions-and-narrowing/057-throwing-errors-to-narrow.problem.ts b/src/018-unions-and-narrowing/058-throwing-errors-to-narrow.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/057-throwing-errors-to-narrow.problem.ts rename to src/018-unions-and-narrowing/058-throwing-errors-to-narrow.problem.ts diff --git a/src/018-unions-and-narrowing/057-throwing-errors-to-narrow.solution.ts b/src/018-unions-and-narrowing/058-throwing-errors-to-narrow.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/057-throwing-errors-to-narrow.solution.ts rename to src/018-unions-and-narrowing/058-throwing-errors-to-narrow.solution.ts diff --git a/src/018-unions-and-narrowing/058-narrowing-with-instanceof-statements.problem.ts b/src/018-unions-and-narrowing/059-narrowing-with-instanceof-statements.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/058-narrowing-with-instanceof-statements.problem.ts rename to src/018-unions-and-narrowing/059-narrowing-with-instanceof-statements.problem.ts diff --git a/src/018-unions-and-narrowing/058-narrowing-with-instanceof-statements.solution.ts b/src/018-unions-and-narrowing/059-narrowing-with-instanceof-statements.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/058-narrowing-with-instanceof-statements.solution.ts rename to src/018-unions-and-narrowing/059-narrowing-with-instanceof-statements.solution.ts diff --git a/src/018-unions-and-narrowing/059-narrowing-with-in-statements.problem.ts b/src/018-unions-and-narrowing/060-narrowing-with-in-statements.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/059-narrowing-with-in-statements.problem.ts rename to src/018-unions-and-narrowing/060-narrowing-with-in-statements.problem.ts diff --git a/src/018-unions-and-narrowing/059-narrowing-with-in-statements.solution.ts b/src/018-unions-and-narrowing/060-narrowing-with-in-statements.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/059-narrowing-with-in-statements.solution.ts rename to src/018-unions-and-narrowing/060-narrowing-with-in-statements.solution.ts diff --git a/src/018-unions-and-narrowing/060-narrowing-unknown-to-a-value.problem.ts b/src/018-unions-and-narrowing/061-narrowing-unknown-to-a-value.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/060-narrowing-unknown-to-a-value.problem.ts rename to src/018-unions-and-narrowing/061-narrowing-unknown-to-a-value.problem.ts diff --git a/src/018-unions-and-narrowing/060-narrowing-unknown-to-a-value.solution.ts b/src/018-unions-and-narrowing/061-narrowing-unknown-to-a-value.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/060-narrowing-unknown-to-a-value.solution.ts rename to src/018-unions-and-narrowing/061-narrowing-unknown-to-a-value.solution.ts diff --git a/src/018-unions-and-narrowing/061-returning-never-to-narrow.solution.ts b/src/018-unions-and-narrowing/062-returning-never-to-narrow.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/061-returning-never-to-narrow.solution.ts rename to src/018-unions-and-narrowing/062-returning-never-to-narrow.problem.ts diff --git a/src/018-unions-and-narrowing/064-evolving-any.problem.ts b/src/018-unions-and-narrowing/062-returning-never-to-narrow.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/064-evolving-any.problem.ts rename to src/018-unions-and-narrowing/062-returning-never-to-narrow.solution.ts diff --git a/src/018-unions-and-narrowing/062-narrowing-with-ternaries.problem.ts b/src/018-unions-and-narrowing/063-narrowing-with-ternaries.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/062-narrowing-with-ternaries.problem.ts rename to src/018-unions-and-narrowing/063-narrowing-with-ternaries.problem.ts diff --git a/src/018-unions-and-narrowing/062-narrowing-with-ternaries.solution.ts b/src/018-unions-and-narrowing/063-narrowing-with-ternaries.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/062-narrowing-with-ternaries.solution.ts rename to src/018-unions-and-narrowing/063-narrowing-with-ternaries.solution.ts diff --git a/src/018-unions-and-narrowing/063-narrowing-with-nullish-coalescing.problem.ts b/src/018-unions-and-narrowing/064-narrowing-with-nullish-coalescing.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/063-narrowing-with-nullish-coalescing.problem.ts rename to src/018-unions-and-narrowing/064-narrowing-with-nullish-coalescing.problem.ts diff --git a/src/018-unions-and-narrowing/063-narrowing-with-nullish-coalescing.solution.ts b/src/018-unions-and-narrowing/064-narrowing-with-nullish-coalescing.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/063-narrowing-with-nullish-coalescing.solution.ts rename to src/018-unions-and-narrowing/064-narrowing-with-nullish-coalescing.solution.ts diff --git a/src/018-unions-and-narrowing/064-evolving-any.solution.ts b/src/018-unions-and-narrowing/065-evolving-any.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/064-evolving-any.solution.ts rename to src/018-unions-and-narrowing/065-evolving-any.problem.ts diff --git a/src/018-unions-and-narrowing/065-evolving-any-arrays.problem.ts b/src/018-unions-and-narrowing/065-evolving-any.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/065-evolving-any-arrays.problem.ts rename to src/018-unions-and-narrowing/065-evolving-any.solution.ts diff --git a/src/018-unions-and-narrowing/065-evolving-any-arrays.solution.ts b/src/018-unions-and-narrowing/066-evolving-any-arrays.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/065-evolving-any-arrays.solution.ts rename to src/018-unions-and-narrowing/066-evolving-any-arrays.problem.ts diff --git a/src/018-unions-and-narrowing/072-adding-defaults-to-discriminated-union.problem.ts b/src/018-unions-and-narrowing/066-evolving-any-arrays.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/072-adding-defaults-to-discriminated-union.problem.ts rename to src/018-unions-and-narrowing/066-evolving-any-arrays.solution.ts diff --git a/src/018-unions-and-narrowing/066-intro-to-discriminated-unions.problem.ts b/src/018-unions-and-narrowing/067-intro-to-discriminated-unions.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/066-intro-to-discriminated-unions.problem.ts rename to src/018-unions-and-narrowing/067-intro-to-discriminated-unions.problem.ts diff --git a/src/018-unions-and-narrowing/066-intro-to-discriminated-unions.solution.ts b/src/018-unions-and-narrowing/067-intro-to-discriminated-unions.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/066-intro-to-discriminated-unions.solution.ts rename to src/018-unions-and-narrowing/067-intro-to-discriminated-unions.solution.ts diff --git a/src/018-unions-and-narrowing/067-destructuring-a-discriminated-union.problem.ts b/src/018-unions-and-narrowing/068-destructuring-a-discriminated-union.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/067-destructuring-a-discriminated-union.problem.ts rename to src/018-unions-and-narrowing/068-destructuring-a-discriminated-union.problem.ts diff --git a/src/018-unions-and-narrowing/067-destructuring-a-discriminated-union.solution.ts b/src/018-unions-and-narrowing/068-destructuring-a-discriminated-union.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/067-destructuring-a-discriminated-union.solution.ts rename to src/018-unions-and-narrowing/068-destructuring-a-discriminated-union.solution.ts diff --git a/src/018-unions-and-narrowing/068-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts b/src/018-unions-and-narrowing/069-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/068-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts rename to src/018-unions-and-narrowing/069-narrowing-a-discriminated-union-with-a-switch-statement.problem.ts diff --git a/src/018-unions-and-narrowing/068-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts b/src/018-unions-and-narrowing/069-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/068-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts rename to src/018-unions-and-narrowing/069-narrowing-a-discriminated-union-with-a-switch-statement.solution.ts diff --git a/src/018-unions-and-narrowing/069-narrowing-with-switch-true.explainer.ts b/src/018-unions-and-narrowing/070-narrowing-with-switch-true.explainer.ts similarity index 100% rename from src/018-unions-and-narrowing/069-narrowing-with-switch-true.explainer.ts rename to src/018-unions-and-narrowing/070-narrowing-with-switch-true.explainer.ts diff --git a/src/018-unions-and-narrowing/070-destructuring-a-discriminated-tuple.problem.ts b/src/018-unions-and-narrowing/071-destructuring-a-discriminated-tuple.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/070-destructuring-a-discriminated-tuple.problem.ts rename to src/018-unions-and-narrowing/071-destructuring-a-discriminated-tuple.problem.ts diff --git a/src/018-unions-and-narrowing/070-destructuring-a-discriminated-tuple.solution.ts b/src/018-unions-and-narrowing/071-destructuring-a-discriminated-tuple.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/070-destructuring-a-discriminated-tuple.solution.ts rename to src/018-unions-and-narrowing/071-destructuring-a-discriminated-tuple.solution.ts diff --git a/src/018-unions-and-narrowing/071-discriminated-booleans.problem.ts b/src/018-unions-and-narrowing/072-discriminated-booleans.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/071-discriminated-booleans.problem.ts rename to src/018-unions-and-narrowing/072-discriminated-booleans.problem.ts diff --git a/src/018-unions-and-narrowing/071-discriminated-booleans.solution.ts b/src/018-unions-and-narrowing/072-discriminated-booleans.solution.ts similarity index 100% rename from src/018-unions-and-narrowing/071-discriminated-booleans.solution.ts rename to src/018-unions-and-narrowing/072-discriminated-booleans.solution.ts diff --git a/src/018-unions-and-narrowing/072-adding-defaults-to-discriminated-union.solution.ts b/src/018-unions-and-narrowing/073-adding-defaults-to-discriminated-union.problem.ts similarity index 100% rename from src/018-unions-and-narrowing/072-adding-defaults-to-discriminated-union.solution.ts rename to src/018-unions-and-narrowing/073-adding-defaults-to-discriminated-union.problem.ts diff --git a/src/020-objects/078-property-key-type.problem.ts b/src/018-unions-and-narrowing/073-adding-defaults-to-discriminated-union.solution.ts similarity index 100% rename from src/020-objects/078-property-key-type.problem.ts rename to src/018-unions-and-narrowing/073-adding-defaults-to-discriminated-union.solution.ts diff --git a/src/020-objects/073-extend-object-using-intersections.problem.ts b/src/020-objects/074-extend-object-using-intersections.problem.ts similarity index 100% rename from src/020-objects/073-extend-object-using-intersections.problem.ts rename to src/020-objects/074-extend-object-using-intersections.problem.ts diff --git a/src/020-objects/073-extend-object-using-intersections.solution.ts b/src/020-objects/074-extend-object-using-intersections.solution.ts similarity index 100% rename from src/020-objects/073-extend-object-using-intersections.solution.ts rename to src/020-objects/074-extend-object-using-intersections.solution.ts diff --git a/src/020-objects/074-extend-object-using-interfaces.problem.ts b/src/020-objects/075-extend-object-using-interfaces.problem.ts similarity index 100% rename from src/020-objects/074-extend-object-using-interfaces.problem.ts rename to src/020-objects/075-extend-object-using-interfaces.problem.ts diff --git a/src/020-objects/074-extend-object-using-interfaces.solution.1.ts b/src/020-objects/075-extend-object-using-interfaces.solution.1.ts similarity index 100% rename from src/020-objects/074-extend-object-using-interfaces.solution.1.ts rename to src/020-objects/075-extend-object-using-interfaces.solution.1.ts diff --git a/src/020-objects/074-extend-object-using-interfaces.solution.2.ts b/src/020-objects/075-extend-object-using-interfaces.solution.2.ts similarity index 100% rename from src/020-objects/074-extend-object-using-interfaces.solution.2.ts rename to src/020-objects/075-extend-object-using-interfaces.solution.2.ts diff --git a/src/020-objects/075-compare-between-intersections-and-interfaces.explainer.ts b/src/020-objects/076-compare-between-intersections-and-interfaces.explainer.ts similarity index 100% rename from src/020-objects/075-compare-between-intersections-and-interfaces.explainer.ts rename to src/020-objects/076-compare-between-intersections-and-interfaces.explainer.ts diff --git a/src/020-objects/076-index-signatures.problem.ts b/src/020-objects/077-index-signatures.problem.ts similarity index 100% rename from src/020-objects/076-index-signatures.problem.ts rename to src/020-objects/077-index-signatures.problem.ts diff --git a/src/020-objects/076-index-signatures.solution.1.ts b/src/020-objects/077-index-signatures.solution.1.ts similarity index 100% rename from src/020-objects/076-index-signatures.solution.1.ts rename to src/020-objects/077-index-signatures.solution.1.ts diff --git a/src/020-objects/076-index-signatures.solution.2.ts b/src/020-objects/077-index-signatures.solution.2.ts similarity index 100% rename from src/020-objects/076-index-signatures.solution.2.ts rename to src/020-objects/077-index-signatures.solution.2.ts diff --git a/src/020-objects/076-index-signatures.solution.3.ts b/src/020-objects/077-index-signatures.solution.3.ts similarity index 100% rename from src/020-objects/076-index-signatures.solution.3.ts rename to src/020-objects/077-index-signatures.solution.3.ts diff --git a/src/020-objects/076-index-signatures.solution.4.ts b/src/020-objects/077-index-signatures.solution.4.ts similarity index 100% rename from src/020-objects/076-index-signatures.solution.4.ts rename to src/020-objects/077-index-signatures.solution.4.ts diff --git a/src/020-objects/077-index-signatures-with-defined-keys.problem.ts b/src/020-objects/078-index-signatures-with-defined-keys.problem.ts similarity index 100% rename from src/020-objects/077-index-signatures-with-defined-keys.problem.ts rename to src/020-objects/078-index-signatures-with-defined-keys.problem.ts diff --git a/src/020-objects/077-index-signatures-with-defined-keys.solution.1.ts b/src/020-objects/078-index-signatures-with-defined-keys.solution.1.ts similarity index 100% rename from src/020-objects/077-index-signatures-with-defined-keys.solution.1.ts rename to src/020-objects/078-index-signatures-with-defined-keys.solution.1.ts diff --git a/src/020-objects/077-index-signatures-with-defined-keys.solution.2.ts b/src/020-objects/078-index-signatures-with-defined-keys.solution.2.ts similarity index 100% rename from src/020-objects/077-index-signatures-with-defined-keys.solution.2.ts rename to src/020-objects/078-index-signatures-with-defined-keys.solution.2.ts diff --git a/src/020-objects/078-property-key-type.solution.ts b/src/020-objects/079-property-key-type.problem.ts similarity index 100% rename from src/020-objects/078-property-key-type.solution.ts rename to src/020-objects/079-property-key-type.problem.ts diff --git a/src/020-objects/079-record-type-with-union-as-keys.problem.ts b/src/020-objects/079-property-key-type.solution.ts similarity index 100% rename from src/020-objects/079-record-type-with-union-as-keys.problem.ts rename to src/020-objects/079-property-key-type.solution.ts diff --git a/src/020-objects/079-record-type-with-union-as-keys.solution.ts b/src/020-objects/080-record-type-with-union-as-keys.problem.ts similarity index 100% rename from src/020-objects/079-record-type-with-union-as-keys.solution.ts rename to src/020-objects/080-record-type-with-union-as-keys.problem.ts diff --git a/src/028-mutability/089-let-and-const-inference.problem.ts b/src/020-objects/080-record-type-with-union-as-keys.solution.ts similarity index 100% rename from src/028-mutability/089-let-and-const-inference.problem.ts rename to src/020-objects/080-record-type-with-union-as-keys.solution.ts diff --git a/src/020-objects/080-declaration-merging-of-interfaces.problem.ts b/src/020-objects/081-declaration-merging-of-interfaces.problem.ts similarity index 100% rename from src/020-objects/080-declaration-merging-of-interfaces.problem.ts rename to src/020-objects/081-declaration-merging-of-interfaces.problem.ts diff --git a/src/020-objects/080-declaration-merging-of-interfaces.solution.ts b/src/020-objects/081-declaration-merging-of-interfaces.solution.ts similarity index 100% rename from src/020-objects/080-declaration-merging-of-interfaces.solution.ts rename to src/020-objects/081-declaration-merging-of-interfaces.solution.ts diff --git a/src/020-objects/081-pick-type-helper.problem.ts b/src/020-objects/082-pick-type-helper.problem.ts similarity index 100% rename from src/020-objects/081-pick-type-helper.problem.ts rename to src/020-objects/082-pick-type-helper.problem.ts diff --git a/src/020-objects/081-pick-type-helper.solution.1.ts b/src/020-objects/082-pick-type-helper.solution.1.ts similarity index 100% rename from src/020-objects/081-pick-type-helper.solution.1.ts rename to src/020-objects/082-pick-type-helper.solution.1.ts diff --git a/src/020-objects/081-pick-type-helper.solution.2.ts b/src/020-objects/082-pick-type-helper.solution.2.ts similarity index 100% rename from src/020-objects/081-pick-type-helper.solution.2.ts rename to src/020-objects/082-pick-type-helper.solution.2.ts diff --git a/src/020-objects/082-common-keys-of-unions-of-objects.problem.ts b/src/020-objects/083-common-keys-of-unions-of-objects.problem.ts similarity index 100% rename from src/020-objects/082-common-keys-of-unions-of-objects.problem.ts rename to src/020-objects/083-common-keys-of-unions-of-objects.problem.ts diff --git a/src/020-objects/082-common-keys-of-unions-of-objects.solution.ts b/src/020-objects/083-common-keys-of-unions-of-objects.solution.ts similarity index 100% rename from src/020-objects/082-common-keys-of-unions-of-objects.solution.ts rename to src/020-objects/083-common-keys-of-unions-of-objects.solution.ts diff --git a/src/020-objects/083-omit-type-helper.problem.ts b/src/020-objects/084-omit-type-helper.problem.ts similarity index 100% rename from src/020-objects/083-omit-type-helper.problem.ts rename to src/020-objects/084-omit-type-helper.problem.ts diff --git a/src/020-objects/083-omit-type-helper.solution.1.ts b/src/020-objects/084-omit-type-helper.solution.1.ts similarity index 100% rename from src/020-objects/083-omit-type-helper.solution.1.ts rename to src/020-objects/084-omit-type-helper.solution.1.ts diff --git a/src/020-objects/083-omit-type-helper.solution.2.ts b/src/020-objects/084-omit-type-helper.solution.2.ts similarity index 100% rename from src/020-objects/083-omit-type-helper.solution.2.ts rename to src/020-objects/084-omit-type-helper.solution.2.ts diff --git a/src/020-objects/084-no-autocomplete-on-omit.explainer.ts b/src/020-objects/085-no-autocomplete-on-omit.explainer.ts similarity index 100% rename from src/020-objects/084-no-autocomplete-on-omit.explainer.ts rename to src/020-objects/085-no-autocomplete-on-omit.explainer.ts diff --git a/src/020-objects/085-omit-cant-distribute.explainer.1.ts b/src/020-objects/086-omit-cant-distribute.explainer.1.ts similarity index 100% rename from src/020-objects/085-omit-cant-distribute.explainer.1.ts rename to src/020-objects/086-omit-cant-distribute.explainer.1.ts diff --git a/src/020-objects/085-omit-cant-distribute.explainer.2.ts b/src/020-objects/086-omit-cant-distribute.explainer.2.ts similarity index 100% rename from src/020-objects/085-omit-cant-distribute.explainer.2.ts rename to src/020-objects/086-omit-cant-distribute.explainer.2.ts diff --git a/src/020-objects/086-omit-or-pick-more-than-one-thing.problem.ts b/src/020-objects/087-omit-or-pick-more-than-one-thing.problem.ts similarity index 100% rename from src/020-objects/086-omit-or-pick-more-than-one-thing.problem.ts rename to src/020-objects/087-omit-or-pick-more-than-one-thing.problem.ts diff --git a/src/020-objects/086-omit-or-pick-more-than-one-thing.solution.1.ts b/src/020-objects/087-omit-or-pick-more-than-one-thing.solution.1.ts similarity index 100% rename from src/020-objects/086-omit-or-pick-more-than-one-thing.solution.1.ts rename to src/020-objects/087-omit-or-pick-more-than-one-thing.solution.1.ts diff --git a/src/020-objects/086-omit-or-pick-more-than-one-thing.solution.2.ts b/src/020-objects/087-omit-or-pick-more-than-one-thing.solution.2.ts similarity index 100% rename from src/020-objects/086-omit-or-pick-more-than-one-thing.solution.2.ts rename to src/020-objects/087-omit-or-pick-more-than-one-thing.solution.2.ts diff --git a/src/020-objects/087-partial-type-helper.problem.ts b/src/020-objects/088-partial-type-helper.problem.ts similarity index 100% rename from src/020-objects/087-partial-type-helper.problem.ts rename to src/020-objects/088-partial-type-helper.problem.ts diff --git a/src/020-objects/087-partial-type-helper.solution.ts b/src/020-objects/088-partial-type-helper.solution.ts similarity index 100% rename from src/020-objects/087-partial-type-helper.solution.ts rename to src/020-objects/088-partial-type-helper.solution.ts diff --git a/src/020-objects/088-required-type-helper.explainer.ts b/src/020-objects/089-required-type-helper.explainer.ts similarity index 100% rename from src/020-objects/088-required-type-helper.explainer.ts rename to src/020-objects/089-required-type-helper.explainer.ts diff --git a/src/028-mutability/089-let-and-const-inference.solution.ts b/src/028-mutability/090-let-and-const-inference.problem.ts similarity index 100% rename from src/028-mutability/089-let-and-const-inference.solution.ts rename to src/028-mutability/090-let-and-const-inference.problem.ts diff --git a/src/028-mutability/090-object-property-inference.problem.ts b/src/028-mutability/090-let-and-const-inference.solution.ts similarity index 100% rename from src/028-mutability/090-object-property-inference.problem.ts rename to src/028-mutability/090-let-and-const-inference.solution.ts diff --git a/src/028-mutability/090-object-property-inference.solution.ts b/src/028-mutability/091-object-property-inference.problem.ts similarity index 100% rename from src/028-mutability/090-object-property-inference.solution.ts rename to src/028-mutability/091-object-property-inference.problem.ts diff --git a/src/028-mutability/092-readonly-object-properties.problem.ts b/src/028-mutability/091-object-property-inference.solution.ts similarity index 100% rename from src/028-mutability/092-readonly-object-properties.problem.ts rename to src/028-mutability/091-object-property-inference.solution.ts diff --git a/src/028-mutability/091-narrowing-in-different-scopes.problem.ts b/src/028-mutability/092-narrowing-in-different-scopes.problem.ts similarity index 100% rename from src/028-mutability/091-narrowing-in-different-scopes.problem.ts rename to src/028-mutability/092-narrowing-in-different-scopes.problem.ts diff --git a/src/028-mutability/091-narrowing-in-different-scopes.solution.1.ts b/src/028-mutability/092-narrowing-in-different-scopes.solution.1.ts similarity index 100% rename from src/028-mutability/091-narrowing-in-different-scopes.solution.1.ts rename to src/028-mutability/092-narrowing-in-different-scopes.solution.1.ts diff --git a/src/028-mutability/091-narrowing-in-different-scopes.solution.2.ts b/src/028-mutability/092-narrowing-in-different-scopes.solution.2.ts similarity index 100% rename from src/028-mutability/091-narrowing-in-different-scopes.solution.2.ts rename to src/028-mutability/092-narrowing-in-different-scopes.solution.2.ts diff --git a/src/028-mutability/092-readonly-object-properties.solution.ts b/src/028-mutability/093-readonly-object-properties.problem.ts similarity index 100% rename from src/028-mutability/092-readonly-object-properties.solution.ts rename to src/028-mutability/093-readonly-object-properties.problem.ts diff --git a/src/028-mutability/093-intro-to-as-const.problem.ts b/src/028-mutability/093-readonly-object-properties.solution.ts similarity index 100% rename from src/028-mutability/093-intro-to-as-const.problem.ts rename to src/028-mutability/093-readonly-object-properties.solution.ts diff --git a/src/028-mutability/093-intro-to-as-const.solution.ts b/src/028-mutability/094-intro-to-as-const.problem.ts similarity index 100% rename from src/028-mutability/093-intro-to-as-const.solution.ts rename to src/028-mutability/094-intro-to-as-const.problem.ts diff --git a/src/028-mutability/094-as-const-vs-object-freeze.problem.ts b/src/028-mutability/094-intro-to-as-const.solution.ts similarity index 100% rename from src/028-mutability/094-as-const-vs-object-freeze.problem.ts rename to src/028-mutability/094-intro-to-as-const.solution.ts diff --git a/src/028-mutability/094-as-const-vs-object-freeze.solution.ts b/src/028-mutability/095-as-const-vs-object-freeze.problem.ts similarity index 100% rename from src/028-mutability/094-as-const-vs-object-freeze.solution.ts rename to src/028-mutability/095-as-const-vs-object-freeze.problem.ts diff --git a/src/028-mutability/095-readonly-arrays.problem.ts b/src/028-mutability/095-as-const-vs-object-freeze.solution.ts similarity index 100% rename from src/028-mutability/095-readonly-arrays.problem.ts rename to src/028-mutability/095-as-const-vs-object-freeze.solution.ts diff --git a/src/028-mutability/095-readonly-arrays.solution.ts b/src/028-mutability/096-readonly-arrays.problem.ts similarity index 100% rename from src/028-mutability/095-readonly-arrays.solution.ts rename to src/028-mutability/096-readonly-arrays.problem.ts diff --git a/src/028-mutability/096-includes-on-readonly-arrays.problem.ts b/src/028-mutability/096-readonly-arrays.solution.ts similarity index 100% rename from src/028-mutability/096-includes-on-readonly-arrays.problem.ts rename to src/028-mutability/096-readonly-arrays.solution.ts diff --git a/src/028-mutability/096-includes-on-readonly-arrays.solution.ts b/src/028-mutability/097-includes-on-readonly-arrays.problem.ts similarity index 100% rename from src/028-mutability/096-includes-on-readonly-arrays.solution.ts rename to src/028-mutability/097-includes-on-readonly-arrays.problem.ts diff --git a/src/028-mutability/097-readonly-arrays-vs-mutable-arrays.problem.ts b/src/028-mutability/097-includes-on-readonly-arrays.solution.ts similarity index 100% rename from src/028-mutability/097-readonly-arrays-vs-mutable-arrays.problem.ts rename to src/028-mutability/097-includes-on-readonly-arrays.solution.ts diff --git a/src/028-mutability/097-readonly-arrays-vs-mutable-arrays.solution.ts b/src/028-mutability/098-readonly-arrays-vs-mutable-arrays.problem.ts similarity index 100% rename from src/028-mutability/097-readonly-arrays-vs-mutable-arrays.solution.ts rename to src/028-mutability/098-readonly-arrays-vs-mutable-arrays.problem.ts diff --git a/src/028-mutability/098-as-const-to-make-functions-infer-a-tuple.problem.ts b/src/028-mutability/098-readonly-arrays-vs-mutable-arrays.solution.ts similarity index 100% rename from src/028-mutability/098-as-const-to-make-functions-infer-a-tuple.problem.ts rename to src/028-mutability/098-readonly-arrays-vs-mutable-arrays.solution.ts diff --git a/src/028-mutability/098-as-const-to-make-functions-infer-a-tuple.solution.ts b/src/028-mutability/099-as-const-to-make-functions-infer-a-tuple.problem.ts similarity index 100% rename from src/028-mutability/098-as-const-to-make-functions-infer-a-tuple.solution.ts rename to src/028-mutability/099-as-const-to-make-functions-infer-a-tuple.problem.ts diff --git a/src/028-mutability/099-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts b/src/028-mutability/099-as-const-to-make-functions-infer-a-tuple.solution.ts similarity index 100% rename from src/028-mutability/099-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts rename to src/028-mutability/099-as-const-to-make-functions-infer-a-tuple.solution.ts diff --git a/src/028-mutability/099-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts b/src/028-mutability/100-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts similarity index 100% rename from src/028-mutability/099-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts rename to src/028-mutability/100-as-const-can-make-strings-infer-as-their-literals-in-objects.problem.ts diff --git a/src/030-classes/100-understand-classes.problem.ts b/src/028-mutability/100-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts similarity index 100% rename from src/030-classes/100-understand-classes.problem.ts rename to src/028-mutability/100-as-const-can-make-strings-infer-as-their-literals-in-objects.solution.ts diff --git a/src/030-classes/100-understand-classes.solution.ts b/src/030-classes/101-understand-classes.problem.ts similarity index 100% rename from src/030-classes/100-understand-classes.solution.ts rename to src/030-classes/101-understand-classes.problem.ts diff --git a/src/030-classes/101-public-and-private-properties.problem.ts b/src/030-classes/101-understand-classes.solution.ts similarity index 100% rename from src/030-classes/101-public-and-private-properties.problem.ts rename to src/030-classes/101-understand-classes.solution.ts diff --git a/src/030-classes/101-public-and-private-properties.solution.ts b/src/030-classes/102-public-and-private-properties.problem.ts similarity index 100% rename from src/030-classes/101-public-and-private-properties.solution.ts rename to src/030-classes/102-public-and-private-properties.problem.ts diff --git a/src/030-classes/102-hash-in-javascript.problem.ts b/src/030-classes/102-public-and-private-properties.solution.ts similarity index 100% rename from src/030-classes/102-hash-in-javascript.problem.ts rename to src/030-classes/102-public-and-private-properties.solution.ts diff --git a/src/030-classes/102-hash-in-javascript.solution.ts b/src/030-classes/103-hash-in-javascript.problem.ts similarity index 100% rename from src/030-classes/102-hash-in-javascript.solution.ts rename to src/030-classes/103-hash-in-javascript.problem.ts diff --git a/src/030-classes/103-optional-class-properties.problem.ts b/src/030-classes/103-hash-in-javascript.solution.ts similarity index 100% rename from src/030-classes/103-optional-class-properties.problem.ts rename to src/030-classes/103-hash-in-javascript.solution.ts diff --git a/src/030-classes/103-optional-class-properties.solution.ts b/src/030-classes/104-optional-class-properties.problem.ts similarity index 100% rename from src/030-classes/103-optional-class-properties.solution.ts rename to src/030-classes/104-optional-class-properties.problem.ts diff --git a/src/030-classes/104-readonly-class-properties.problem.ts b/src/030-classes/104-optional-class-properties.solution.ts similarity index 100% rename from src/030-classes/104-readonly-class-properties.problem.ts rename to src/030-classes/104-optional-class-properties.solution.ts diff --git a/src/030-classes/104-readonly-class-properties.solution.ts b/src/030-classes/105-readonly-class-properties.problem.ts similarity index 100% rename from src/030-classes/104-readonly-class-properties.solution.ts rename to src/030-classes/105-readonly-class-properties.problem.ts diff --git a/src/030-classes/105-class-methods.problem.ts b/src/030-classes/105-readonly-class-properties.solution.ts similarity index 100% rename from src/030-classes/105-class-methods.problem.ts rename to src/030-classes/105-readonly-class-properties.solution.ts diff --git a/src/030-classes/105-class-methods.solution.ts b/src/030-classes/106-class-methods.problem.ts similarity index 100% rename from src/030-classes/105-class-methods.solution.ts rename to src/030-classes/106-class-methods.problem.ts diff --git a/src/030-classes/106-decorators.problem.ts b/src/030-classes/106-class-methods.solution.ts similarity index 100% rename from src/030-classes/106-decorators.problem.ts rename to src/030-classes/106-class-methods.solution.ts diff --git a/src/030-classes/106-decorators.solution.ts b/src/030-classes/107-decorators.problem.ts similarity index 100% rename from src/030-classes/106-decorators.solution.ts rename to src/030-classes/107-decorators.problem.ts diff --git a/src/030-classes/107-implementing-interfaces.problem.ts b/src/030-classes/107-decorators.solution.ts similarity index 100% rename from src/030-classes/107-implementing-interfaces.problem.ts rename to src/030-classes/107-decorators.solution.ts diff --git a/src/030-classes/107-implementing-interfaces.solution.ts b/src/030-classes/108-implementing-interfaces.problem.ts similarity index 100% rename from src/030-classes/107-implementing-interfaces.solution.ts rename to src/030-classes/108-implementing-interfaces.problem.ts diff --git a/src/030-classes/108-typing-this-in-functions.problem.ts b/src/030-classes/108-implementing-interfaces.solution.ts similarity index 100% rename from src/030-classes/108-typing-this-in-functions.problem.ts rename to src/030-classes/108-implementing-interfaces.solution.ts diff --git a/src/030-classes/108-typing-this-in-functions.solution.ts b/src/030-classes/109-typing-this-in-functions.problem.ts similarity index 100% rename from src/030-classes/108-typing-this-in-functions.solution.ts rename to src/030-classes/109-typing-this-in-functions.problem.ts diff --git a/src/030-classes/109-can-you-type-this-in-functions.problem.ts b/src/030-classes/109-typing-this-in-functions.solution.ts similarity index 100% rename from src/030-classes/109-can-you-type-this-in-functions.problem.ts rename to src/030-classes/109-typing-this-in-functions.solution.ts diff --git a/src/030-classes/109-can-you-type-this-in-functions.solution.ts b/src/030-classes/110-can-you-type-this-in-functions.problem.ts similarity index 100% rename from src/030-classes/109-can-you-type-this-in-functions.solution.ts rename to src/030-classes/110-can-you-type-this-in-functions.problem.ts diff --git a/src/032-typescript-only-features/110-auto-assignation-in-classes.problem.ts b/src/030-classes/110-can-you-type-this-in-functions.solution.ts similarity index 100% rename from src/032-typescript-only-features/110-auto-assignation-in-classes.problem.ts rename to src/030-classes/110-can-you-type-this-in-functions.solution.ts diff --git a/src/032-typescript-only-features/110-auto-assignation-in-classes.solution.ts b/src/032-typescript-only-features/111-auto-assignation-in-classes.problem.ts similarity index 100% rename from src/032-typescript-only-features/110-auto-assignation-in-classes.solution.ts rename to src/032-typescript-only-features/111-auto-assignation-in-classes.problem.ts diff --git a/src/032-typescript-only-features/111-enums.problem.ts b/src/032-typescript-only-features/111-auto-assignation-in-classes.solution.ts similarity index 100% rename from src/032-typescript-only-features/111-enums.problem.ts rename to src/032-typescript-only-features/111-auto-assignation-in-classes.solution.ts diff --git a/src/032-typescript-only-features/111-enums.solution.ts b/src/032-typescript-only-features/112-enums.problem.ts similarity index 100% rename from src/032-typescript-only-features/111-enums.solution.ts rename to src/032-typescript-only-features/112-enums.problem.ts diff --git a/src/032-typescript-only-features/112-const-enums.problem.ts b/src/032-typescript-only-features/112-enums.solution.ts similarity index 100% rename from src/032-typescript-only-features/112-const-enums.problem.ts rename to src/032-typescript-only-features/112-enums.solution.ts diff --git a/src/032-typescript-only-features/112-const-enums.solution.ts b/src/032-typescript-only-features/113-const-enums.problem.ts similarity index 100% rename from src/032-typescript-only-features/112-const-enums.solution.ts rename to src/032-typescript-only-features/113-const-enums.problem.ts diff --git a/src/032-typescript-only-features/113-namespaces.problem.ts b/src/032-typescript-only-features/113-const-enums.solution.ts similarity index 100% rename from src/032-typescript-only-features/113-namespaces.problem.ts rename to src/032-typescript-only-features/113-const-enums.solution.ts diff --git a/src/032-typescript-only-features/113-namespaces.solution.ts b/src/032-typescript-only-features/114-namespaces.problem.ts similarity index 100% rename from src/032-typescript-only-features/113-namespaces.solution.ts rename to src/032-typescript-only-features/114-namespaces.problem.ts diff --git a/src/032-typescript-only-features/114-namespaces-can-be-used-as-types-or-values.problem.ts b/src/032-typescript-only-features/114-namespaces.solution.ts similarity index 100% rename from src/032-typescript-only-features/114-namespaces-can-be-used-as-types-or-values.problem.ts rename to src/032-typescript-only-features/114-namespaces.solution.ts diff --git a/src/032-typescript-only-features/114-namespaces-can-be-used-as-types-or-values.solution.ts b/src/032-typescript-only-features/115-namespaces-can-be-used-as-types-or-values.problem.ts similarity index 100% rename from src/032-typescript-only-features/114-namespaces-can-be-used-as-types-or-values.solution.ts rename to src/032-typescript-only-features/115-namespaces-can-be-used-as-types-or-values.problem.ts diff --git a/src/032-typescript-only-features/115-namespaces-can-declaration-merge.problem.ts b/src/032-typescript-only-features/115-namespaces-can-be-used-as-types-or-values.solution.ts similarity index 100% rename from src/032-typescript-only-features/115-namespaces-can-declaration-merge.problem.ts rename to src/032-typescript-only-features/115-namespaces-can-be-used-as-types-or-values.solution.ts diff --git a/src/032-typescript-only-features/115-namespaces-can-declaration-merge.solution.ts b/src/032-typescript-only-features/116-namespaces-can-declaration-merge.problem.ts similarity index 100% rename from src/032-typescript-only-features/115-namespaces-can-declaration-merge.solution.ts rename to src/032-typescript-only-features/116-namespaces-can-declaration-merge.problem.ts diff --git a/src/032-typescript-only-features/116-interfaces-within-namespaces-can-declaration-merge.problem.ts b/src/032-typescript-only-features/116-namespaces-can-declaration-merge.solution.ts similarity index 100% rename from src/032-typescript-only-features/116-interfaces-within-namespaces-can-declaration-merge.problem.ts rename to src/032-typescript-only-features/116-namespaces-can-declaration-merge.solution.ts diff --git a/src/032-typescript-only-features/116-interfaces-within-namespaces-can-declaration-merge.solution.ts b/src/032-typescript-only-features/117-interfaces-within-namespaces-can-declaration-merge.problem.ts similarity index 100% rename from src/032-typescript-only-features/116-interfaces-within-namespaces-can-declaration-merge.solution.ts rename to src/032-typescript-only-features/117-interfaces-within-namespaces-can-declaration-merge.problem.ts diff --git a/src/032-typescript-only-features/117-should-you-use-namespaces.problem.ts b/src/032-typescript-only-features/117-interfaces-within-namespaces-can-declaration-merge.solution.ts similarity index 100% rename from src/032-typescript-only-features/117-should-you-use-namespaces.problem.ts rename to src/032-typescript-only-features/117-interfaces-within-namespaces-can-declaration-merge.solution.ts diff --git a/src/032-typescript-only-features/117-should-you-use-namespaces.solution.ts b/src/032-typescript-only-features/118-should-you-use-namespaces.problem.ts similarity index 100% rename from src/032-typescript-only-features/117-should-you-use-namespaces.solution.ts rename to src/032-typescript-only-features/118-should-you-use-namespaces.problem.ts diff --git a/src/035-understanding-the-compiler/118-any.problem.ts b/src/032-typescript-only-features/118-should-you-use-namespaces.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/118-any.problem.ts rename to src/032-typescript-only-features/118-should-you-use-namespaces.solution.ts diff --git a/src/035-understanding-the-compiler/118-any.solution.ts b/src/035-understanding-the-compiler/119-dont-annotate-too-much.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/118-any.solution.ts rename to src/035-understanding-the-compiler/119-dont-annotate-too-much.problem.ts diff --git a/src/035-understanding-the-compiler/119-global-typings-use-any.problem.ts b/src/035-understanding-the-compiler/119-dont-annotate-too-much.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/119-global-typings-use-any.problem.ts rename to src/035-understanding-the-compiler/119-dont-annotate-too-much.solution.ts diff --git a/src/035-understanding-the-compiler/119-global-typings-use-any.solution.ts b/src/035-understanding-the-compiler/120-any.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/119-global-typings-use-any.solution.ts rename to src/035-understanding-the-compiler/120-any.problem.ts diff --git a/src/035-understanding-the-compiler/120-as-and-as-any.problem.ts b/src/035-understanding-the-compiler/120-any.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/120-as-and-as-any.problem.ts rename to src/035-understanding-the-compiler/120-any.solution.ts diff --git a/src/035-understanding-the-compiler/120-as-and-as-any.solution.ts b/src/035-understanding-the-compiler/121-global-typings-use-any.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/120-as-and-as-any.solution.ts rename to src/035-understanding-the-compiler/121-global-typings-use-any.problem.ts diff --git a/src/035-understanding-the-compiler/121-limits-of-as.problem.ts b/src/035-understanding-the-compiler/121-global-typings-use-any.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/121-limits-of-as.problem.ts rename to src/035-understanding-the-compiler/121-global-typings-use-any.solution.ts diff --git a/src/035-understanding-the-compiler/121-limits-of-as.solution.ts b/src/035-understanding-the-compiler/122-as-and-as-any.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/121-limits-of-as.solution.ts rename to src/035-understanding-the-compiler/122-as-and-as-any.problem.ts diff --git a/src/035-understanding-the-compiler/122-ts-ignore.problem.ts b/src/035-understanding-the-compiler/122-as-and-as-any.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/122-ts-ignore.problem.ts rename to src/035-understanding-the-compiler/122-as-and-as-any.solution.ts diff --git a/src/035-understanding-the-compiler/122-ts-ignore.solution.ts b/src/035-understanding-the-compiler/123-limits-of-as.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/122-ts-ignore.solution.ts rename to src/035-understanding-the-compiler/123-limits-of-as.problem.ts diff --git a/src/035-understanding-the-compiler/123-ts-expect-error.problem.ts b/src/035-understanding-the-compiler/123-limits-of-as.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/123-ts-expect-error.problem.ts rename to src/035-understanding-the-compiler/123-limits-of-as.solution.ts diff --git a/src/035-understanding-the-compiler/123-ts-expect-error.solution.ts b/src/035-understanding-the-compiler/124-ts-ignore.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/123-ts-expect-error.solution.ts rename to src/035-understanding-the-compiler/124-ts-ignore.problem.ts diff --git a/src/035-understanding-the-compiler/124-satisfies.problem.ts b/src/035-understanding-the-compiler/124-ts-ignore.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/124-satisfies.problem.ts rename to src/035-understanding-the-compiler/124-ts-ignore.solution.ts diff --git a/src/035-understanding-the-compiler/124-satisfies.solution.ts b/src/035-understanding-the-compiler/125-ts-expect-error.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/124-satisfies.solution.ts rename to src/035-understanding-the-compiler/125-ts-expect-error.problem.ts diff --git a/src/035-understanding-the-compiler/125-satisfies-with-as-const.problem.ts b/src/035-understanding-the-compiler/125-ts-expect-error.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/125-satisfies-with-as-const.problem.ts rename to src/035-understanding-the-compiler/125-ts-expect-error.solution.ts diff --git a/src/035-understanding-the-compiler/125-satisfies-with-as-const.solution.ts b/src/035-understanding-the-compiler/126-satisfies.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/125-satisfies-with-as-const.solution.ts rename to src/035-understanding-the-compiler/126-satisfies.problem.ts diff --git a/src/035-understanding-the-compiler/126-annotating-errors-a-function-throws.problem.ts b/src/035-understanding-the-compiler/126-satisfies.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/126-annotating-errors-a-function-throws.problem.ts rename to src/035-understanding-the-compiler/126-satisfies.solution.ts diff --git a/src/035-understanding-the-compiler/126-annotating-errors-a-function-throws.solution.ts b/src/035-understanding-the-compiler/127-satisfies-with-as-const.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/126-annotating-errors-a-function-throws.solution.ts rename to src/035-understanding-the-compiler/127-satisfies-with-as-const.problem.ts diff --git a/src/035-understanding-the-compiler/127-excess-properties-warnings.problem.ts b/src/035-understanding-the-compiler/127-satisfies-with-as-const.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/127-excess-properties-warnings.problem.ts rename to src/035-understanding-the-compiler/127-satisfies-with-as-const.solution.ts diff --git a/src/035-understanding-the-compiler/127-excess-properties-warnings.solution.ts b/src/035-understanding-the-compiler/128-annotating-errors-a-function-throws.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/127-excess-properties-warnings.solution.ts rename to src/035-understanding-the-compiler/128-annotating-errors-a-function-throws.problem.ts diff --git a/src/035-understanding-the-compiler/128-object-keys-and-object-entries.problem.ts b/src/035-understanding-the-compiler/128-annotating-errors-a-function-throws.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/128-object-keys-and-object-entries.problem.ts rename to src/035-understanding-the-compiler/128-annotating-errors-a-function-throws.solution.ts diff --git a/src/035-understanding-the-compiler/128-object-keys-and-object-entries.solution.ts b/src/035-understanding-the-compiler/129-excess-properties-warnings.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/128-object-keys-and-object-entries.solution.ts rename to src/035-understanding-the-compiler/129-excess-properties-warnings.problem.ts diff --git a/src/035-understanding-the-compiler/129-structural-vs-nominal-typing.problem.ts b/src/035-understanding-the-compiler/129-excess-properties-warnings.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/129-structural-vs-nominal-typing.problem.ts rename to src/035-understanding-the-compiler/129-excess-properties-warnings.solution.ts diff --git a/src/035-understanding-the-compiler/129-structural-vs-nominal-typing.solution.ts b/src/035-understanding-the-compiler/130-object-keys-and-object-entries.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/129-structural-vs-nominal-typing.solution.ts rename to src/035-understanding-the-compiler/130-object-keys-and-object-entries.problem.ts diff --git a/src/035-understanding-the-compiler/130-how-enums-break-structural-typing.problem.ts b/src/035-understanding-the-compiler/130-object-keys-and-object-entries.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/130-how-enums-break-structural-typing.problem.ts rename to src/035-understanding-the-compiler/130-object-keys-and-object-entries.solution.ts diff --git a/src/035-understanding-the-compiler/130-how-enums-break-structural-typing.solution.ts b/src/035-understanding-the-compiler/131-structural-vs-nominal-typing.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/130-how-enums-break-structural-typing.solution.ts rename to src/035-understanding-the-compiler/131-structural-vs-nominal-typing.problem.ts diff --git a/src/035-understanding-the-compiler/131-unions-of-functions.problem.ts b/src/035-understanding-the-compiler/131-structural-vs-nominal-typing.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/131-unions-of-functions.problem.ts rename to src/035-understanding-the-compiler/131-structural-vs-nominal-typing.solution.ts diff --git a/src/035-understanding-the-compiler/131-unions-of-functions.solution.ts b/src/035-understanding-the-compiler/132-how-enums-break-structural-typing.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/131-unions-of-functions.solution.ts rename to src/035-understanding-the-compiler/132-how-enums-break-structural-typing.problem.ts diff --git a/src/035-understanding-the-compiler/132-empty-object-type.problem.ts b/src/035-understanding-the-compiler/132-how-enums-break-structural-typing.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/132-empty-object-type.problem.ts rename to src/035-understanding-the-compiler/132-how-enums-break-structural-typing.solution.ts diff --git a/src/035-understanding-the-compiler/132-empty-object-type.solution.ts b/src/035-understanding-the-compiler/133-unions-of-functions.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/132-empty-object-type.solution.ts rename to src/035-understanding-the-compiler/133-unions-of-functions.problem.ts diff --git a/src/035-understanding-the-compiler/133-truly-empty-object.problem.ts b/src/035-understanding-the-compiler/133-unions-of-functions.solution.ts similarity index 100% rename from src/035-understanding-the-compiler/133-truly-empty-object.problem.ts rename to src/035-understanding-the-compiler/133-unions-of-functions.solution.ts diff --git a/src/035-understanding-the-compiler/133-truly-empty-object.solution.ts b/src/035-understanding-the-compiler/134-empty-object-type.problem.ts similarity index 100% rename from src/035-understanding-the-compiler/133-truly-empty-object.solution.ts rename to src/035-understanding-the-compiler/134-empty-object-type.problem.ts diff --git a/src/040-deriving-types-from-values/134-typeof-keyword.problem.ts b/src/035-understanding-the-compiler/134-empty-object-type.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/134-typeof-keyword.problem.ts rename to src/035-understanding-the-compiler/134-empty-object-type.solution.ts diff --git a/src/040-deriving-types-from-values/134-typeof-keyword.solution.ts b/src/035-understanding-the-compiler/135-truly-empty-object.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/134-typeof-keyword.solution.ts rename to src/035-understanding-the-compiler/135-truly-empty-object.problem.ts diff --git a/src/040-deriving-types-from-values/135-create-runtime-values-from-types.problem.ts b/src/035-understanding-the-compiler/135-truly-empty-object.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/135-create-runtime-values-from-types.problem.ts rename to src/035-understanding-the-compiler/135-truly-empty-object.solution.ts diff --git a/src/040-deriving-types-from-values/135-create-runtime-values-from-types.solution.ts b/src/040-deriving-types-from-values/136-typeof-keyword.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/135-create-runtime-values-from-types.solution.ts rename to src/040-deriving-types-from-values/136-typeof-keyword.problem.ts diff --git a/src/040-deriving-types-from-values/136-classes-and-enums-cross-value-and-type-world.problem.ts b/src/040-deriving-types-from-values/136-typeof-keyword.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/136-classes-and-enums-cross-value-and-type-world.problem.ts rename to src/040-deriving-types-from-values/136-typeof-keyword.solution.ts diff --git a/src/040-deriving-types-from-values/136-classes-and-enums-cross-value-and-type-world.solution.ts b/src/040-deriving-types-from-values/137-create-runtime-values-from-types.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/136-classes-and-enums-cross-value-and-type-world.solution.ts rename to src/040-deriving-types-from-values/137-create-runtime-values-from-types.problem.ts diff --git a/src/040-deriving-types-from-values/137-this-crosses-value-and-type-world.problem.ts b/src/040-deriving-types-from-values/137-create-runtime-values-from-types.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/137-this-crosses-value-and-type-world.problem.ts rename to src/040-deriving-types-from-values/137-create-runtime-values-from-types.solution.ts diff --git a/src/040-deriving-types-from-values/137-this-crosses-value-and-type-world.solution.ts b/src/040-deriving-types-from-values/138-classes-and-enums-cross-value-and-type-world.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/137-this-crosses-value-and-type-world.solution.ts rename to src/040-deriving-types-from-values/138-classes-and-enums-cross-value-and-type-world.problem.ts diff --git a/src/040-deriving-types-from-values/138-return-type.problem.ts b/src/040-deriving-types-from-values/138-classes-and-enums-cross-value-and-type-world.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/138-return-type.problem.ts rename to src/040-deriving-types-from-values/138-classes-and-enums-cross-value-and-type-world.solution.ts diff --git a/src/040-deriving-types-from-values/138-return-type.solution.ts b/src/040-deriving-types-from-values/139-this-crosses-value-and-type-world.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/138-return-type.solution.ts rename to src/040-deriving-types-from-values/139-this-crosses-value-and-type-world.problem.ts diff --git a/src/040-deriving-types-from-values/139-parameters-type-helper.problem.ts b/src/040-deriving-types-from-values/139-this-crosses-value-and-type-world.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/139-parameters-type-helper.problem.ts rename to src/040-deriving-types-from-values/139-this-crosses-value-and-type-world.solution.ts diff --git a/src/040-deriving-types-from-values/139-parameters-type-helper.solution.ts b/src/040-deriving-types-from-values/140-return-type.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/139-parameters-type-helper.solution.ts rename to src/040-deriving-types-from-values/140-return-type.problem.ts diff --git a/src/040-deriving-types-from-values/140-keyof.problem.ts b/src/040-deriving-types-from-values/140-return-type.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/140-keyof.problem.ts rename to src/040-deriving-types-from-values/140-return-type.solution.ts diff --git a/src/040-deriving-types-from-values/140-keyof.solution.ts b/src/040-deriving-types-from-values/141-parameters-type-helper.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/140-keyof.solution.ts rename to src/040-deriving-types-from-values/141-parameters-type-helper.problem.ts diff --git a/src/040-deriving-types-from-values/141-indexed-access-types.problem.ts b/src/040-deriving-types-from-values/141-parameters-type-helper.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/141-indexed-access-types.problem.ts rename to src/040-deriving-types-from-values/141-parameters-type-helper.solution.ts diff --git a/src/040-deriving-types-from-values/141-indexed-access-types.solution.ts b/src/040-deriving-types-from-values/142-keyof.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/141-indexed-access-types.solution.ts rename to src/040-deriving-types-from-values/142-keyof.problem.ts diff --git a/src/040-deriving-types-from-values/142-pass-unions-to-indexed-access-types.problem.ts b/src/040-deriving-types-from-values/142-keyof.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/142-pass-unions-to-indexed-access-types.problem.ts rename to src/040-deriving-types-from-values/142-keyof.solution.ts diff --git a/src/040-deriving-types-from-values/142-pass-unions-to-indexed-access-types.solution.ts b/src/040-deriving-types-from-values/143-indexed-access-types.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/142-pass-unions-to-indexed-access-types.solution.ts rename to src/040-deriving-types-from-values/143-indexed-access-types.problem.ts diff --git a/src/040-deriving-types-from-values/143-pass-keyof-into-an-indexed-access-type.problem.ts b/src/040-deriving-types-from-values/143-indexed-access-types.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/143-pass-keyof-into-an-indexed-access-type.problem.ts rename to src/040-deriving-types-from-values/143-indexed-access-types.solution.ts diff --git a/src/040-deriving-types-from-values/143-pass-keyof-into-an-indexed-access-type.solution.ts b/src/040-deriving-types-from-values/144-pass-unions-to-indexed-access-types.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/143-pass-keyof-into-an-indexed-access-type.solution.ts rename to src/040-deriving-types-from-values/144-pass-unions-to-indexed-access-types.problem.ts diff --git a/src/040-deriving-types-from-values/144-create-an-enum-from-as-const-object.problem.ts b/src/040-deriving-types-from-values/144-pass-unions-to-indexed-access-types.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/144-create-an-enum-from-as-const-object.problem.ts rename to src/040-deriving-types-from-values/144-pass-unions-to-indexed-access-types.solution.ts diff --git a/src/040-deriving-types-from-values/144-create-an-enum-from-as-const-object.solution.ts b/src/040-deriving-types-from-values/145-pass-keyof-into-an-indexed-access-type.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/144-create-an-enum-from-as-const-object.solution.ts rename to src/040-deriving-types-from-values/145-pass-keyof-into-an-indexed-access-type.problem.ts diff --git a/src/040-deriving-types-from-values/145-create-a-union-from-an-as-const-array.problem.ts b/src/040-deriving-types-from-values/145-pass-keyof-into-an-indexed-access-type.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/145-create-a-union-from-an-as-const-array.problem.ts rename to src/040-deriving-types-from-values/145-pass-keyof-into-an-indexed-access-type.solution.ts diff --git a/src/040-deriving-types-from-values/145-create-a-union-from-an-as-const-array.solution.ts b/src/040-deriving-types-from-values/146-create-an-enum-from-as-const-object.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/145-create-a-union-from-an-as-const-array.solution.ts rename to src/040-deriving-types-from-values/146-create-an-enum-from-as-const-object.problem.ts diff --git a/src/040-deriving-types-from-values/146-should-i-use-enums-or-as-const.problem.ts b/src/040-deriving-types-from-values/146-create-an-enum-from-as-const-object.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/146-should-i-use-enums-or-as-const.problem.ts rename to src/040-deriving-types-from-values/146-create-an-enum-from-as-const-object.solution.ts diff --git a/src/040-deriving-types-from-values/146-should-i-use-enums-or-as-const.solution.ts b/src/040-deriving-types-from-values/147-create-a-union-from-an-as-const-array.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/146-should-i-use-enums-or-as-const.solution.ts rename to src/040-deriving-types-from-values/147-create-a-union-from-an-as-const-array.problem.ts diff --git a/src/040-deriving-types-from-values/147-using-numeric-comparators-on-enums.problem.ts b/src/040-deriving-types-from-values/147-create-a-union-from-an-as-const-array.solution.ts similarity index 100% rename from src/040-deriving-types-from-values/147-using-numeric-comparators-on-enums.problem.ts rename to src/040-deriving-types-from-values/147-create-a-union-from-an-as-const-array.solution.ts diff --git a/src/040-deriving-types-from-values/147-using-numeric-comparators-on-enums.solution.ts b/src/040-deriving-types-from-values/148-should-i-use-enums-or-as-const.problem.ts similarity index 100% rename from src/040-deriving-types-from-values/147-using-numeric-comparators-on-enums.solution.ts rename to src/040-deriving-types-from-values/148-should-i-use-enums-or-as-const.problem.ts diff --git a/src/060-modules-and-namespaces/148-module-or-script.problem.ts b/src/040-deriving-types-from-values/148-should-i-use-enums-or-as-const.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/148-module-or-script.problem.ts rename to src/040-deriving-types-from-values/148-should-i-use-enums-or-as-const.solution.ts diff --git a/src/060-modules-and-namespaces/148-module-or-script.solution.ts b/src/040-deriving-types-from-values/149-using-numeric-comparators-on-enums.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/148-module-or-script.solution.ts rename to src/040-deriving-types-from-values/149-using-numeric-comparators-on-enums.problem.ts diff --git a/src/060-modules-and-namespaces/149-module-detection-force.problem.ts b/src/040-deriving-types-from-values/149-using-numeric-comparators-on-enums.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/149-module-detection-force.problem.ts rename to src/040-deriving-types-from-values/149-using-numeric-comparators-on-enums.solution.ts diff --git a/src/060-modules-and-namespaces/149-module-detection-force.solution.ts b/src/060-modules-and-namespaces/150-module-or-script.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/149-module-detection-force.solution.ts rename to src/060-modules-and-namespaces/150-module-or-script.problem.ts diff --git a/src/060-modules-and-namespaces/150-isolated-modules.problem.ts b/src/060-modules-and-namespaces/150-module-or-script.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/150-isolated-modules.problem.ts rename to src/060-modules-and-namespaces/150-module-or-script.solution.ts diff --git a/src/060-modules-and-namespaces/150-isolated-modules.solution.ts b/src/060-modules-and-namespaces/151-module-detection-force.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/150-isolated-modules.solution.ts rename to src/060-modules-and-namespaces/151-module-detection-force.problem.ts diff --git a/src/060-modules-and-namespaces/151-cjs-vs-esm.problem.ts b/src/060-modules-and-namespaces/151-module-detection-force.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/151-cjs-vs-esm.problem.ts rename to src/060-modules-and-namespaces/151-module-detection-force.solution.ts diff --git a/src/060-modules-and-namespaces/151-cjs-vs-esm.solution.ts b/src/060-modules-and-namespaces/152-isolated-modules.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/151-cjs-vs-esm.solution.ts rename to src/060-modules-and-namespaces/152-isolated-modules.problem.ts diff --git a/src/060-modules-and-namespaces/152-module-resolution-bundler-or-nodenext.problem.ts b/src/060-modules-and-namespaces/152-isolated-modules.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/152-module-resolution-bundler-or-nodenext.problem.ts rename to src/060-modules-and-namespaces/152-isolated-modules.solution.ts diff --git a/src/060-modules-and-namespaces/152-module-resolution-bundler-or-nodenext.solution.ts b/src/060-modules-and-namespaces/153-cjs-vs-esm.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/152-module-resolution-bundler-or-nodenext.solution.ts rename to src/060-modules-and-namespaces/153-cjs-vs-esm.problem.ts diff --git a/src/060-modules-and-namespaces/153-declaration-files.problem.ts b/src/060-modules-and-namespaces/153-cjs-vs-esm.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/153-declaration-files.problem.ts rename to src/060-modules-and-namespaces/153-cjs-vs-esm.solution.ts diff --git a/src/060-modules-and-namespaces/153-declaration-files.solution.ts b/src/060-modules-and-namespaces/154-module-resolution-bundler-or-nodenext.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/153-declaration-files.solution.ts rename to src/060-modules-and-namespaces/154-module-resolution-bundler-or-nodenext.problem.ts diff --git a/src/060-modules-and-namespaces/154-skip-lib-check-true.problem.ts b/src/060-modules-and-namespaces/154-module-resolution-bundler-or-nodenext.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/154-skip-lib-check-true.problem.ts rename to src/060-modules-and-namespaces/154-module-resolution-bundler-or-nodenext.solution.ts diff --git a/src/060-modules-and-namespaces/154-skip-lib-check-true.solution.ts b/src/060-modules-and-namespaces/155-declaration-files.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/154-skip-lib-check-true.solution.ts rename to src/060-modules-and-namespaces/155-declaration-files.problem.ts diff --git a/src/060-modules-and-namespaces/155-declaration-files-can-be-modules-or-scripts.problem.ts b/src/060-modules-and-namespaces/155-declaration-files.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/155-declaration-files-can-be-modules-or-scripts.problem.ts rename to src/060-modules-and-namespaces/155-declaration-files.solution.ts diff --git a/src/060-modules-and-namespaces/155-declaration-files-can-be-modules-or-scripts.solution.ts b/src/060-modules-and-namespaces/156-skip-lib-check-true.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/155-declaration-files-can-be-modules-or-scripts.solution.ts rename to src/060-modules-and-namespaces/156-skip-lib-check-true.problem.ts diff --git a/src/060-modules-and-namespaces/156-declaration-files-can-be-used-to-type-js-files.problem.ts b/src/060-modules-and-namespaces/156-skip-lib-check-true.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/156-declaration-files-can-be-used-to-type-js-files.problem.ts rename to src/060-modules-and-namespaces/156-skip-lib-check-true.solution.ts diff --git a/src/060-modules-and-namespaces/156-declaration-files-can-be-used-to-type-js-files.solution.ts b/src/060-modules-and-namespaces/157-declaration-files-can-be-modules-or-scripts.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/156-declaration-files-can-be-used-to-type-js-files.solution.ts rename to src/060-modules-and-namespaces/157-declaration-files-can-be-modules-or-scripts.problem.ts diff --git a/src/060-modules-and-namespaces/157-should-you-use-declaration-files.problem.ts b/src/060-modules-and-namespaces/157-declaration-files-can-be-modules-or-scripts.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/157-should-you-use-declaration-files.problem.ts rename to src/060-modules-and-namespaces/157-declaration-files-can-be-modules-or-scripts.solution.ts diff --git a/src/060-modules-and-namespaces/157-should-you-use-declaration-files.solution.ts b/src/060-modules-and-namespaces/158-declaration-files-can-be-used-to-type-js-files.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/157-should-you-use-declaration-files.solution.ts rename to src/060-modules-and-namespaces/158-declaration-files-can-be-used-to-type-js-files.problem.ts diff --git a/src/060-modules-and-namespaces/158-resolve-json-module.problem.ts b/src/060-modules-and-namespaces/158-declaration-files-can-be-used-to-type-js-files.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/158-resolve-json-module.problem.ts rename to src/060-modules-and-namespaces/158-declaration-files-can-be-used-to-type-js-files.solution.ts diff --git a/src/060-modules-and-namespaces/158-resolve-json-module.solution.ts b/src/060-modules-and-namespaces/159-should-you-use-declaration-files.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/158-resolve-json-module.solution.ts rename to src/060-modules-and-namespaces/159-should-you-use-declaration-files.problem.ts diff --git a/src/060-modules-and-namespaces/159-json-d-ts-files.problem.ts b/src/060-modules-and-namespaces/159-should-you-use-declaration-files.solution.ts similarity index 100% rename from src/060-modules-and-namespaces/159-json-d-ts-files.problem.ts rename to src/060-modules-and-namespaces/159-should-you-use-declaration-files.solution.ts diff --git a/src/060-modules-and-namespaces/159-json-d-ts-files.solution.ts b/src/060-modules-and-namespaces/160-resolve-json-module.problem.ts similarity index 100% rename from src/060-modules-and-namespaces/159-json-d-ts-files.solution.ts rename to src/060-modules-and-namespaces/160-resolve-json-module.problem.ts diff --git a/src/062-the-global-namespace/160-ambient-context-and-declare-const.problem.ts b/src/060-modules-and-namespaces/160-resolve-json-module.solution.ts similarity index 100% rename from src/062-the-global-namespace/160-ambient-context-and-declare-const.problem.ts rename to src/060-modules-and-namespaces/160-resolve-json-module.solution.ts diff --git a/src/062-the-global-namespace/160-ambient-context-and-declare-const.solution.ts b/src/060-modules-and-namespaces/161-json-d-ts-files.problem.ts similarity index 100% rename from src/062-the-global-namespace/160-ambient-context-and-declare-const.solution.ts rename to src/060-modules-and-namespaces/161-json-d-ts-files.problem.ts diff --git a/src/062-the-global-namespace/161-declare-global.problem.ts b/src/060-modules-and-namespaces/161-json-d-ts-files.solution.ts similarity index 100% rename from src/062-the-global-namespace/161-declare-global.problem.ts rename to src/060-modules-and-namespaces/161-json-d-ts-files.solution.ts diff --git a/src/062-the-global-namespace/161-declare-global.solution.ts b/src/062-the-global-namespace/162-ambient-context-and-declare-const.problem.ts similarity index 100% rename from src/062-the-global-namespace/161-declare-global.solution.ts rename to src/062-the-global-namespace/162-ambient-context-and-declare-const.problem.ts diff --git a/src/062-the-global-namespace/162-globals-are-tied-to-a-single-tsconfig.problem.ts b/src/062-the-global-namespace/162-ambient-context-and-declare-const.solution.ts similarity index 100% rename from src/062-the-global-namespace/162-globals-are-tied-to-a-single-tsconfig.problem.ts rename to src/062-the-global-namespace/162-ambient-context-and-declare-const.solution.ts diff --git a/src/062-the-global-namespace/162-globals-are-tied-to-a-single-tsconfig.solution.ts b/src/062-the-global-namespace/163-declare-global.problem.ts similarity index 100% rename from src/062-the-global-namespace/162-globals-are-tied-to-a-single-tsconfig.solution.ts rename to src/062-the-global-namespace/163-declare-global.problem.ts diff --git a/src/062-the-global-namespace/163-declare-global-or-declaration-file.problem.ts b/src/062-the-global-namespace/163-declare-global.solution.ts similarity index 100% rename from src/062-the-global-namespace/163-declare-global-or-declaration-file.problem.ts rename to src/062-the-global-namespace/163-declare-global.solution.ts diff --git a/src/062-the-global-namespace/163-declare-global-or-declaration-file.solution.ts b/src/062-the-global-namespace/164-globals-are-tied-to-a-single-tsconfig.problem.ts similarity index 100% rename from src/062-the-global-namespace/163-declare-global-or-declaration-file.solution.ts rename to src/062-the-global-namespace/164-globals-are-tied-to-a-single-tsconfig.problem.ts diff --git a/src/062-the-global-namespace/164-declare-module.problem.ts b/src/062-the-global-namespace/164-globals-are-tied-to-a-single-tsconfig.solution.ts similarity index 100% rename from src/062-the-global-namespace/164-declare-module.problem.ts rename to src/062-the-global-namespace/164-globals-are-tied-to-a-single-tsconfig.solution.ts diff --git a/src/062-the-global-namespace/164-declare-module.solution.ts b/src/062-the-global-namespace/165-declare-global-or-declaration-file.problem.ts similarity index 100% rename from src/062-the-global-namespace/164-declare-module.solution.ts rename to src/062-the-global-namespace/165-declare-global-or-declaration-file.problem.ts diff --git a/src/062-the-global-namespace/165-wildcard-in-declare-module.problem.ts b/src/062-the-global-namespace/165-declare-global-or-declaration-file.solution.ts similarity index 100% rename from src/062-the-global-namespace/165-wildcard-in-declare-module.problem.ts rename to src/062-the-global-namespace/165-declare-global-or-declaration-file.solution.ts diff --git a/src/062-the-global-namespace/165-wildcard-in-declare-module.solution.ts b/src/062-the-global-namespace/166-declare-module.problem.ts similarity index 100% rename from src/062-the-global-namespace/165-wildcard-in-declare-module.solution.ts rename to src/062-the-global-namespace/166-declare-module.problem.ts diff --git a/src/062-the-global-namespace/166-modifying-window.problem.ts b/src/062-the-global-namespace/166-declare-module.solution.ts similarity index 100% rename from src/062-the-global-namespace/166-modifying-window.problem.ts rename to src/062-the-global-namespace/166-declare-module.solution.ts diff --git a/src/062-the-global-namespace/166-modifying-window.solution.ts b/src/062-the-global-namespace/167-wildcard-in-declare-module.problem.ts similarity index 100% rename from src/062-the-global-namespace/166-modifying-window.solution.ts rename to src/062-the-global-namespace/167-wildcard-in-declare-module.problem.ts diff --git a/src/062-the-global-namespace/167-modifying-globalthis.problem.ts b/src/062-the-global-namespace/167-wildcard-in-declare-module.solution.ts similarity index 100% rename from src/062-the-global-namespace/167-modifying-globalthis.problem.ts rename to src/062-the-global-namespace/167-wildcard-in-declare-module.solution.ts diff --git a/src/062-the-global-namespace/167-modifying-globalthis.solution.ts b/src/062-the-global-namespace/168-modifying-window.problem.ts similarity index 100% rename from src/062-the-global-namespace/167-modifying-globalthis.solution.ts rename to src/062-the-global-namespace/168-modifying-window.problem.ts diff --git a/src/062-the-global-namespace/168-modifying-process-env.problem.ts b/src/062-the-global-namespace/168-modifying-window.solution.ts similarity index 100% rename from src/062-the-global-namespace/168-modifying-process-env.problem.ts rename to src/062-the-global-namespace/168-modifying-window.solution.ts diff --git a/src/062-the-global-namespace/168-modifying-process-env.solution.ts b/src/062-the-global-namespace/169-modifying-globalthis.problem.ts similarity index 100% rename from src/062-the-global-namespace/168-modifying-process-env.solution.ts rename to src/062-the-global-namespace/169-modifying-globalthis.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/169-declare-module-for-overriding-third-party-libraries.problem.ts b/src/062-the-global-namespace/169-modifying-globalthis.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/169-declare-module-for-overriding-third-party-libraries.problem.ts rename to src/062-the-global-namespace/169-modifying-globalthis.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/169-declare-module-for-overriding-third-party-libraries.solution.ts b/src/062-the-global-namespace/170-modifying-process-env.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/169-declare-module-for-overriding-third-party-libraries.solution.ts rename to src/062-the-global-namespace/170-modifying-process-env.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/170-lib-d-ts.problem.ts b/src/062-the-global-namespace/170-modifying-process-env.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/170-lib-d-ts.problem.ts rename to src/062-the-global-namespace/170-modifying-process-env.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/170-lib-d-ts.solution.ts b/src/065-four-spaces-of-typescript-declarations/171-declare-module-for-overriding-third-party-libraries.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/170-lib-d-ts.solution.ts rename to src/065-four-spaces-of-typescript-declarations/171-declare-module-for-overriding-third-party-libraries.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/171-using-target-to-change-lib-d-ts.problem.ts b/src/065-four-spaces-of-typescript-declarations/171-declare-module-for-overriding-third-party-libraries.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/171-using-target-to-change-lib-d-ts.problem.ts rename to src/065-four-spaces-of-typescript-declarations/171-declare-module-for-overriding-third-party-libraries.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/171-using-target-to-change-lib-d-ts.solution.ts b/src/065-four-spaces-of-typescript-declarations/172-lib-d-ts.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/171-using-target-to-change-lib-d-ts.solution.ts rename to src/065-four-spaces-of-typescript-declarations/172-lib-d-ts.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/172-lib-dom-d-ts.problem.ts b/src/065-four-spaces-of-typescript-declarations/172-lib-d-ts.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/172-lib-dom-d-ts.problem.ts rename to src/065-four-spaces-of-typescript-declarations/172-lib-d-ts.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/172-lib-dom-d-ts.solution.ts b/src/065-four-spaces-of-typescript-declarations/173-using-target-to-change-lib-d-ts.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/172-lib-dom-d-ts.solution.ts rename to src/065-four-spaces-of-typescript-declarations/173-using-target-to-change-lib-d-ts.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/173-third-party-types.problem.ts b/src/065-four-spaces-of-typescript-declarations/173-using-target-to-change-lib-d-ts.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/173-third-party-types.problem.ts rename to src/065-four-spaces-of-typescript-declarations/173-using-target-to-change-lib-d-ts.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/173-third-party-types.solution.ts b/src/065-four-spaces-of-typescript-declarations/174-lib-dom-d-ts.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/173-third-party-types.solution.ts rename to src/065-four-spaces-of-typescript-declarations/174-lib-dom-d-ts.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/174-type-roots-in-tsconfig.problem.ts b/src/065-four-spaces-of-typescript-declarations/174-lib-dom-d-ts.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/174-type-roots-in-tsconfig.problem.ts rename to src/065-four-spaces-of-typescript-declarations/174-lib-dom-d-ts.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/174-type-roots-in-tsconfig.solution.ts b/src/065-four-spaces-of-typescript-declarations/175-third-party-types.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/174-type-roots-in-tsconfig.solution.ts rename to src/065-four-spaces-of-typescript-declarations/175-third-party-types.problem.ts diff --git a/src/065-four-spaces-of-typescript-declarations/175-types-that-ship-with-libraries.problem.ts b/src/065-four-spaces-of-typescript-declarations/175-third-party-types.solution.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/175-types-that-ship-with-libraries.problem.ts rename to src/065-four-spaces-of-typescript-declarations/175-third-party-types.solution.ts diff --git a/src/065-four-spaces-of-typescript-declarations/175-types-that-ship-with-libraries.solution.ts b/src/065-four-spaces-of-typescript-declarations/176-type-roots-in-tsconfig.problem.ts similarity index 100% rename from src/065-four-spaces-of-typescript-declarations/175-types-that-ship-with-libraries.solution.ts rename to src/065-four-spaces-of-typescript-declarations/176-type-roots-in-tsconfig.problem.ts diff --git a/src/075-designing-your-types/176-domain-modelling-in-typescript.problem.ts b/src/065-four-spaces-of-typescript-declarations/176-type-roots-in-tsconfig.solution.ts similarity index 100% rename from src/075-designing-your-types/176-domain-modelling-in-typescript.problem.ts rename to src/065-four-spaces-of-typescript-declarations/176-type-roots-in-tsconfig.solution.ts diff --git a/src/075-designing-your-types/176-domain-modelling-in-typescript.solution.ts b/src/065-four-spaces-of-typescript-declarations/177-types-that-ship-with-libraries.problem.ts similarity index 100% rename from src/075-designing-your-types/176-domain-modelling-in-typescript.solution.ts rename to src/065-four-spaces-of-typescript-declarations/177-types-that-ship-with-libraries.problem.ts diff --git a/src/075-designing-your-types/177-intro-to-helper-types.problem.ts b/src/065-four-spaces-of-typescript-declarations/177-types-that-ship-with-libraries.solution.ts similarity index 100% rename from src/075-designing-your-types/177-intro-to-helper-types.problem.ts rename to src/065-four-spaces-of-typescript-declarations/177-types-that-ship-with-libraries.solution.ts diff --git a/src/075-designing-your-types/177-intro-to-helper-types.solution.ts b/src/075-designing-your-types/178-domain-modelling-in-typescript.problem.ts similarity index 100% rename from src/075-designing-your-types/177-intro-to-helper-types.solution.ts rename to src/075-designing-your-types/178-domain-modelling-in-typescript.problem.ts diff --git a/src/075-designing-your-types/178-multiple-type-parameters.problem.ts b/src/075-designing-your-types/178-domain-modelling-in-typescript.solution.ts similarity index 100% rename from src/075-designing-your-types/178-multiple-type-parameters.problem.ts rename to src/075-designing-your-types/178-domain-modelling-in-typescript.solution.ts diff --git a/src/075-designing-your-types/178-multiple-type-parameters.solution.ts b/src/075-designing-your-types/179-intro-to-helper-types.problem.ts similarity index 100% rename from src/075-designing-your-types/178-multiple-type-parameters.solution.ts rename to src/075-designing-your-types/179-intro-to-helper-types.problem.ts diff --git a/src/075-designing-your-types/179-default-type-parameters.problem.ts b/src/075-designing-your-types/179-intro-to-helper-types.solution.ts similarity index 100% rename from src/075-designing-your-types/179-default-type-parameters.problem.ts rename to src/075-designing-your-types/179-intro-to-helper-types.solution.ts diff --git a/src/075-designing-your-types/179-default-type-parameters.solution.ts b/src/075-designing-your-types/180-multiple-type-parameters.problem.ts similarity index 100% rename from src/075-designing-your-types/179-default-type-parameters.solution.ts rename to src/075-designing-your-types/180-multiple-type-parameters.problem.ts diff --git a/src/075-designing-your-types/180-type-helper-constraints.problem.ts b/src/075-designing-your-types/180-multiple-type-parameters.solution.ts similarity index 100% rename from src/075-designing-your-types/180-type-helper-constraints.problem.ts rename to src/075-designing-your-types/180-multiple-type-parameters.solution.ts diff --git a/src/075-designing-your-types/180-type-helper-constraints.solution.ts b/src/075-designing-your-types/181-default-type-parameters.problem.ts similarity index 100% rename from src/075-designing-your-types/180-type-helper-constraints.solution.ts rename to src/075-designing-your-types/181-default-type-parameters.problem.ts diff --git a/src/075-designing-your-types/181-tighter-version-of-omit.problem.ts b/src/075-designing-your-types/181-default-type-parameters.solution.ts similarity index 100% rename from src/075-designing-your-types/181-tighter-version-of-omit.problem.ts rename to src/075-designing-your-types/181-default-type-parameters.solution.ts diff --git a/src/075-designing-your-types/181-tighter-version-of-omit.solution.ts b/src/075-designing-your-types/182-type-helper-constraints.problem.ts similarity index 100% rename from src/075-designing-your-types/181-tighter-version-of-omit.solution.ts rename to src/075-designing-your-types/182-type-helper-constraints.problem.ts diff --git a/src/075-designing-your-types/182-template-literal-types.problem.ts b/src/075-designing-your-types/182-type-helper-constraints.solution.ts similarity index 100% rename from src/075-designing-your-types/182-template-literal-types.problem.ts rename to src/075-designing-your-types/182-type-helper-constraints.solution.ts diff --git a/src/075-designing-your-types/182-template-literal-types.solution.ts b/src/075-designing-your-types/183-tighter-version-of-omit.problem.ts similarity index 100% rename from src/075-designing-your-types/182-template-literal-types.solution.ts rename to src/075-designing-your-types/183-tighter-version-of-omit.problem.ts diff --git a/src/075-designing-your-types/183-passing-unions-to-template-literal-types.problem.ts b/src/075-designing-your-types/183-tighter-version-of-omit.solution.ts similarity index 100% rename from src/075-designing-your-types/183-passing-unions-to-template-literal-types.problem.ts rename to src/075-designing-your-types/183-tighter-version-of-omit.solution.ts diff --git a/src/075-designing-your-types/183-passing-unions-to-template-literal-types.solution.ts b/src/075-designing-your-types/184-template-literal-types.problem.ts similarity index 100% rename from src/075-designing-your-types/183-passing-unions-to-template-literal-types.solution.ts rename to src/075-designing-your-types/184-template-literal-types.problem.ts diff --git a/src/075-designing-your-types/184-mapped-types.problem.ts b/src/075-designing-your-types/184-template-literal-types.solution.ts similarity index 100% rename from src/075-designing-your-types/184-mapped-types.problem.ts rename to src/075-designing-your-types/184-template-literal-types.solution.ts diff --git a/src/075-designing-your-types/184-mapped-types.solution.ts b/src/075-designing-your-types/185-passing-unions-to-template-literal-types.problem.ts similarity index 100% rename from src/075-designing-your-types/184-mapped-types.solution.ts rename to src/075-designing-your-types/185-passing-unions-to-template-literal-types.problem.ts diff --git a/src/075-designing-your-types/185-as-in-mapped-types.problem.ts b/src/075-designing-your-types/185-passing-unions-to-template-literal-types.solution.ts similarity index 100% rename from src/075-designing-your-types/185-as-in-mapped-types.problem.ts rename to src/075-designing-your-types/185-passing-unions-to-template-literal-types.solution.ts diff --git a/src/075-designing-your-types/185-as-in-mapped-types.solution.ts b/src/075-designing-your-types/186-mapped-types.problem.ts similarity index 100% rename from src/075-designing-your-types/185-as-in-mapped-types.solution.ts rename to src/075-designing-your-types/186-mapped-types.problem.ts diff --git a/src/080-configuring-typescript/186-introduction-to-tsconfig.problem.ts b/src/075-designing-your-types/186-mapped-types.solution.ts similarity index 100% rename from src/080-configuring-typescript/186-introduction-to-tsconfig.problem.ts rename to src/075-designing-your-types/186-mapped-types.solution.ts diff --git a/src/080-configuring-typescript/186-introduction-to-tsconfig.solution.ts b/src/075-designing-your-types/187-as-in-mapped-types.problem.ts similarity index 100% rename from src/080-configuring-typescript/186-introduction-to-tsconfig.solution.ts rename to src/075-designing-your-types/187-as-in-mapped-types.problem.ts diff --git a/src/080-configuring-typescript/187-tsconfig-bases.problem.ts b/src/075-designing-your-types/187-as-in-mapped-types.solution.ts similarity index 100% rename from src/080-configuring-typescript/187-tsconfig-bases.problem.ts rename to src/075-designing-your-types/187-as-in-mapped-types.solution.ts diff --git a/src/080-configuring-typescript/187-tsconfig-bases.solution.ts b/src/080-configuring-typescript/188-introduction-to-tsconfig.problem.ts similarity index 100% rename from src/080-configuring-typescript/187-tsconfig-bases.solution.ts rename to src/080-configuring-typescript/188-introduction-to-tsconfig.problem.ts diff --git a/src/080-configuring-typescript/188-multiple-tsconfig-json-files.problem.ts b/src/080-configuring-typescript/188-introduction-to-tsconfig.solution.ts similarity index 100% rename from src/080-configuring-typescript/188-multiple-tsconfig-json-files.problem.ts rename to src/080-configuring-typescript/188-introduction-to-tsconfig.solution.ts diff --git a/src/080-configuring-typescript/188-multiple-tsconfig-json-files.solution.ts b/src/080-configuring-typescript/189-tsconfig-bases.problem.ts similarity index 100% rename from src/080-configuring-typescript/188-multiple-tsconfig-json-files.solution.ts rename to src/080-configuring-typescript/189-tsconfig-bases.problem.ts diff --git a/src/080-configuring-typescript/189-extending-from-other-tsconfig-json-files.problem.ts b/src/080-configuring-typescript/189-tsconfig-bases.solution.ts similarity index 100% rename from src/080-configuring-typescript/189-extending-from-other-tsconfig-json-files.problem.ts rename to src/080-configuring-typescript/189-tsconfig-bases.solution.ts diff --git a/src/080-configuring-typescript/189-extending-from-other-tsconfig-json-files.solution.ts b/src/080-configuring-typescript/190-multiple-tsconfig-json-files.problem.ts similarity index 100% rename from src/080-configuring-typescript/189-extending-from-other-tsconfig-json-files.solution.ts rename to src/080-configuring-typescript/190-multiple-tsconfig-json-files.problem.ts diff --git a/src/080-configuring-typescript/190-project-references.problem.ts b/src/080-configuring-typescript/190-multiple-tsconfig-json-files.solution.ts similarity index 100% rename from src/080-configuring-typescript/190-project-references.problem.ts rename to src/080-configuring-typescript/190-multiple-tsconfig-json-files.solution.ts diff --git a/src/080-configuring-typescript/190-project-references.solution.ts b/src/080-configuring-typescript/191-extending-from-other-tsconfig-json-files.problem.ts similarity index 100% rename from src/080-configuring-typescript/190-project-references.solution.ts rename to src/080-configuring-typescript/191-extending-from-other-tsconfig-json-files.problem.ts diff --git a/src/080-configuring-typescript/191-jsx.problem.ts b/src/080-configuring-typescript/191-extending-from-other-tsconfig-json-files.solution.ts similarity index 100% rename from src/080-configuring-typescript/191-jsx.problem.ts rename to src/080-configuring-typescript/191-extending-from-other-tsconfig-json-files.solution.ts diff --git a/src/080-configuring-typescript/191-jsx.solution.ts b/src/080-configuring-typescript/192-project-references.problem.ts similarity index 100% rename from src/080-configuring-typescript/191-jsx.solution.ts rename to src/080-configuring-typescript/192-project-references.problem.ts diff --git a/src/080-configuring-typescript/192-rules-that-make-up-strict-mode.problem.ts b/src/080-configuring-typescript/192-project-references.solution.ts similarity index 100% rename from src/080-configuring-typescript/192-rules-that-make-up-strict-mode.problem.ts rename to src/080-configuring-typescript/192-project-references.solution.ts diff --git a/src/080-configuring-typescript/192-rules-that-make-up-strict-mode.solution.ts b/src/080-configuring-typescript/193-jsx.problem.ts similarity index 100% rename from src/080-configuring-typescript/192-rules-that-make-up-strict-mode.solution.ts rename to src/080-configuring-typescript/193-jsx.problem.ts diff --git a/src/080-configuring-typescript/193-no-unchecked-indexed-access.problem.ts b/src/080-configuring-typescript/193-jsx.solution.ts similarity index 100% rename from src/080-configuring-typescript/193-no-unchecked-indexed-access.problem.ts rename to src/080-configuring-typescript/193-jsx.solution.ts diff --git a/src/080-configuring-typescript/193-no-unchecked-indexed-access.solution.ts b/src/080-configuring-typescript/194-rules-that-make-up-strict-mode.problem.ts similarity index 100% rename from src/080-configuring-typescript/193-no-unchecked-indexed-access.solution.ts rename to src/080-configuring-typescript/194-rules-that-make-up-strict-mode.problem.ts diff --git a/src/080-configuring-typescript/194-creating-declaration-files-and-declaration-maps.problem.ts b/src/080-configuring-typescript/194-rules-that-make-up-strict-mode.solution.ts similarity index 100% rename from src/080-configuring-typescript/194-creating-declaration-files-and-declaration-maps.problem.ts rename to src/080-configuring-typescript/194-rules-that-make-up-strict-mode.solution.ts diff --git a/src/080-configuring-typescript/194-creating-declaration-files-and-declaration-maps.solution.ts b/src/080-configuring-typescript/195-no-unchecked-indexed-access.problem.ts similarity index 100% rename from src/080-configuring-typescript/194-creating-declaration-files-and-declaration-maps.solution.ts rename to src/080-configuring-typescript/195-no-unchecked-indexed-access.problem.ts diff --git a/src/080-configuring-typescript/195-setting-up-types-for-node.problem.ts b/src/080-configuring-typescript/195-no-unchecked-indexed-access.solution.ts similarity index 100% rename from src/080-configuring-typescript/195-setting-up-types-for-node.problem.ts rename to src/080-configuring-typescript/195-no-unchecked-indexed-access.solution.ts diff --git a/src/080-configuring-typescript/195-setting-up-types-for-node.solution.ts b/src/080-configuring-typescript/196-creating-declaration-files-and-declaration-maps.problem.ts similarity index 100% rename from src/080-configuring-typescript/195-setting-up-types-for-node.solution.ts rename to src/080-configuring-typescript/196-creating-declaration-files-and-declaration-maps.problem.ts diff --git a/src/080-configuring-typescript/196-set-up-types-for-simple-scripts.problem.ts b/src/080-configuring-typescript/196-creating-declaration-files-and-declaration-maps.solution.ts similarity index 100% rename from src/080-configuring-typescript/196-set-up-types-for-simple-scripts.problem.ts rename to src/080-configuring-typescript/196-creating-declaration-files-and-declaration-maps.solution.ts diff --git a/src/080-configuring-typescript/196-set-up-types-for-simple-scripts.solution.ts b/src/080-configuring-typescript/197-setting-up-types-for-node.problem.ts similarity index 100% rename from src/080-configuring-typescript/196-set-up-types-for-simple-scripts.solution.ts rename to src/080-configuring-typescript/197-setting-up-types-for-node.problem.ts diff --git a/src/080-configuring-typescript/197-set-up-types-for-test-files.problem.ts b/src/080-configuring-typescript/197-setting-up-types-for-node.solution.ts similarity index 100% rename from src/080-configuring-typescript/197-set-up-types-for-test-files.problem.ts rename to src/080-configuring-typescript/197-setting-up-types-for-node.solution.ts diff --git a/src/080-configuring-typescript/197-set-up-types-for-test-files.solution.ts b/src/080-configuring-typescript/198-set-up-types-for-simple-scripts.problem.ts similarity index 100% rename from src/080-configuring-typescript/197-set-up-types-for-test-files.solution.ts rename to src/080-configuring-typescript/198-set-up-types-for-simple-scripts.problem.ts diff --git a/src/080-configuring-typescript/198-set-up-types-for-bundled-web-app.problem.ts b/src/080-configuring-typescript/198-set-up-types-for-simple-scripts.solution.ts similarity index 100% rename from src/080-configuring-typescript/198-set-up-types-for-bundled-web-app.problem.ts rename to src/080-configuring-typescript/198-set-up-types-for-simple-scripts.solution.ts diff --git a/src/080-configuring-typescript/198-set-up-types-for-bundled-web-app.solution.ts b/src/080-configuring-typescript/199-set-up-types-for-test-files.problem.ts similarity index 100% rename from src/080-configuring-typescript/198-set-up-types-for-bundled-web-app.solution.ts rename to src/080-configuring-typescript/199-set-up-types-for-test-files.problem.ts diff --git a/src/085-the-utils-folder/199-intro-to-the-utils-folder.problem.ts b/src/080-configuring-typescript/199-set-up-types-for-test-files.solution.ts similarity index 100% rename from src/085-the-utils-folder/199-intro-to-the-utils-folder.problem.ts rename to src/080-configuring-typescript/199-set-up-types-for-test-files.solution.ts diff --git a/src/085-the-utils-folder/199-intro-to-the-utils-folder.solution.ts b/src/080-configuring-typescript/200-set-up-types-for-bundled-web-app.problem.ts similarity index 100% rename from src/085-the-utils-folder/199-intro-to-the-utils-folder.solution.ts rename to src/080-configuring-typescript/200-set-up-types-for-bundled-web-app.problem.ts diff --git a/src/085-the-utils-folder/200-generic-functions-without-inference.problem.ts b/src/080-configuring-typescript/200-set-up-types-for-bundled-web-app.solution.ts similarity index 100% rename from src/085-the-utils-folder/200-generic-functions-without-inference.problem.ts rename to src/080-configuring-typescript/200-set-up-types-for-bundled-web-app.solution.ts diff --git a/src/085-the-utils-folder/200-generic-functions-without-inference.solution.ts b/src/085-the-utils-folder/201-intro-to-the-utils-folder.problem.ts similarity index 100% rename from src/085-the-utils-folder/200-generic-functions-without-inference.solution.ts rename to src/085-the-utils-folder/201-intro-to-the-utils-folder.problem.ts diff --git a/src/085-the-utils-folder/201-type-parameter-defaults-in-generic-functions.problem.ts b/src/085-the-utils-folder/201-intro-to-the-utils-folder.solution.ts similarity index 100% rename from src/085-the-utils-folder/201-type-parameter-defaults-in-generic-functions.problem.ts rename to src/085-the-utils-folder/201-intro-to-the-utils-folder.solution.ts diff --git a/src/085-the-utils-folder/201-type-parameter-defaults-in-generic-functions.solution.ts b/src/085-the-utils-folder/202-generic-functions-without-inference.problem.ts similarity index 100% rename from src/085-the-utils-folder/201-type-parameter-defaults-in-generic-functions.solution.ts rename to src/085-the-utils-folder/202-generic-functions-without-inference.problem.ts diff --git a/src/085-the-utils-folder/202-type-parameter-constraints-with-generic-functions.problem.ts b/src/085-the-utils-folder/202-generic-functions-without-inference.solution.ts similarity index 100% rename from src/085-the-utils-folder/202-type-parameter-constraints-with-generic-functions.problem.ts rename to src/085-the-utils-folder/202-generic-functions-without-inference.solution.ts diff --git a/src/085-the-utils-folder/202-type-parameter-constraints-with-generic-functions.solution.ts b/src/085-the-utils-folder/203-type-parameter-defaults-in-generic-functions.problem.ts similarity index 100% rename from src/085-the-utils-folder/202-type-parameter-constraints-with-generic-functions.solution.ts rename to src/085-the-utils-folder/203-type-parameter-defaults-in-generic-functions.problem.ts diff --git a/src/085-the-utils-folder/203-generic-functions-with-inference.problem.ts b/src/085-the-utils-folder/203-type-parameter-defaults-in-generic-functions.solution.ts similarity index 100% rename from src/085-the-utils-folder/203-generic-functions-with-inference.problem.ts rename to src/085-the-utils-folder/203-type-parameter-defaults-in-generic-functions.solution.ts diff --git a/src/085-the-utils-folder/203-generic-functions-with-inference.solution.ts b/src/085-the-utils-folder/204-type-parameter-constraints-with-generic-functions.problem.ts similarity index 100% rename from src/085-the-utils-folder/203-generic-functions-with-inference.solution.ts rename to src/085-the-utils-folder/204-type-parameter-constraints-with-generic-functions.problem.ts diff --git a/src/085-the-utils-folder/204-multiple-type-arguments.problem.ts b/src/085-the-utils-folder/204-type-parameter-constraints-with-generic-functions.solution.ts similarity index 100% rename from src/085-the-utils-folder/204-multiple-type-arguments.problem.ts rename to src/085-the-utils-folder/204-type-parameter-constraints-with-generic-functions.solution.ts diff --git a/src/085-the-utils-folder/204-multiple-type-arguments.solution.ts b/src/085-the-utils-folder/205-generic-functions-with-inference.problem.ts similarity index 100% rename from src/085-the-utils-folder/204-multiple-type-arguments.solution.ts rename to src/085-the-utils-folder/205-generic-functions-with-inference.problem.ts diff --git a/src/085-the-utils-folder/205-create-group-by-function.problem.ts b/src/085-the-utils-folder/205-generic-functions-with-inference.solution.ts similarity index 100% rename from src/085-the-utils-folder/205-create-group-by-function.problem.ts rename to src/085-the-utils-folder/205-generic-functions-with-inference.solution.ts diff --git a/src/085-the-utils-folder/205-create-group-by-function.solution.ts b/src/085-the-utils-folder/206-as-any-inside-generic-functions.problem.ts similarity index 100% rename from src/085-the-utils-folder/205-create-group-by-function.solution.ts rename to src/085-the-utils-folder/206-as-any-inside-generic-functions.problem.ts diff --git a/src/085-the-utils-folder/206-type-predicates.problem.ts b/src/085-the-utils-folder/206-as-any-inside-generic-functions.solution.ts similarity index 100% rename from src/085-the-utils-folder/206-type-predicates.problem.ts rename to src/085-the-utils-folder/206-as-any-inside-generic-functions.solution.ts diff --git a/src/085-the-utils-folder/206-type-predicates.solution.ts b/src/085-the-utils-folder/207-multiple-type-arguments.problem.ts similarity index 100% rename from src/085-the-utils-folder/206-type-predicates.solution.ts rename to src/085-the-utils-folder/207-multiple-type-arguments.problem.ts diff --git a/src/085-the-utils-folder/207-assertion-functions.problem.ts b/src/085-the-utils-folder/207-multiple-type-arguments.solution.ts similarity index 100% rename from src/085-the-utils-folder/207-assertion-functions.problem.ts rename to src/085-the-utils-folder/207-multiple-type-arguments.solution.ts diff --git a/src/085-the-utils-folder/207-assertion-functions.solution.ts b/src/085-the-utils-folder/208-create-group-by-function.problem.ts similarity index 100% rename from src/085-the-utils-folder/207-assertion-functions.solution.ts rename to src/085-the-utils-folder/208-create-group-by-function.problem.ts diff --git a/src/085-the-utils-folder/208-function-overloads.problem.ts b/src/085-the-utils-folder/208-create-group-by-function.solution.ts similarity index 100% rename from src/085-the-utils-folder/208-function-overloads.problem.ts rename to src/085-the-utils-folder/208-create-group-by-function.solution.ts diff --git a/src/085-the-utils-folder/208-function-overloads.solution.ts b/src/085-the-utils-folder/209-type-predicates.problem.ts similarity index 100% rename from src/085-the-utils-folder/208-function-overloads.solution.ts rename to src/085-the-utils-folder/209-type-predicates.problem.ts diff --git a/src/090-the-style-guide/209-setting-up-eslint.problem.ts b/src/085-the-utils-folder/209-type-predicates.solution.ts similarity index 100% rename from src/090-the-style-guide/209-setting-up-eslint.problem.ts rename to src/085-the-utils-folder/209-type-predicates.solution.ts diff --git a/src/090-the-style-guide/209-setting-up-eslint.solution.ts b/src/085-the-utils-folder/210-assertion-functions.problem.ts similarity index 100% rename from src/090-the-style-guide/209-setting-up-eslint.solution.ts rename to src/085-the-utils-folder/210-assertion-functions.problem.ts diff --git a/src/090-the-style-guide/210-hungarian-notation.problem.ts b/src/085-the-utils-folder/210-assertion-functions.solution.ts similarity index 100% rename from src/090-the-style-guide/210-hungarian-notation.problem.ts rename to src/085-the-utils-folder/210-assertion-functions.solution.ts diff --git a/src/090-the-style-guide/210-hungarian-notation.solution.ts b/src/085-the-utils-folder/211-function-overloads.problem.ts similarity index 100% rename from src/090-the-style-guide/210-hungarian-notation.solution.ts rename to src/085-the-utils-folder/211-function-overloads.problem.ts diff --git a/src/090-the-style-guide/211-where-to-put-your-types.problem.ts b/src/085-the-utils-folder/211-function-overloads.solution.ts similarity index 100% rename from src/090-the-style-guide/211-where-to-put-your-types.problem.ts rename to src/085-the-utils-folder/211-function-overloads.solution.ts diff --git a/src/090-the-style-guide/211-where-to-put-your-types.solution.ts b/src/090-the-style-guide/212-setting-up-eslint.problem.ts similarity index 100% rename from src/090-the-style-guide/211-where-to-put-your-types.solution.ts rename to src/090-the-style-guide/212-setting-up-eslint.problem.ts diff --git a/src/090-the-style-guide/212-colocation-of-types.problem.ts b/src/090-the-style-guide/212-setting-up-eslint.solution.ts similarity index 100% rename from src/090-the-style-guide/212-colocation-of-types.problem.ts rename to src/090-the-style-guide/212-setting-up-eslint.solution.ts diff --git a/src/090-the-style-guide/212-colocation-of-types.solution.ts b/src/090-the-style-guide/213-hungarian-notation.problem.ts similarity index 100% rename from src/090-the-style-guide/212-colocation-of-types.solution.ts rename to src/090-the-style-guide/213-hungarian-notation.problem.ts diff --git a/src/090-the-style-guide/213-explicit-any-rule-or-not.problem.ts b/src/090-the-style-guide/213-hungarian-notation.solution.ts similarity index 100% rename from src/090-the-style-guide/213-explicit-any-rule-or-not.problem.ts rename to src/090-the-style-guide/213-hungarian-notation.solution.ts diff --git a/src/090-the-style-guide/213-explicit-any-rule-or-not.solution.ts b/src/090-the-style-guide/214-where-to-put-your-types.problem.ts similarity index 100% rename from src/090-the-style-guide/213-explicit-any-rule-or-not.solution.ts rename to src/090-the-style-guide/214-where-to-put-your-types.problem.ts diff --git a/src/090-the-style-guide/214-explicit-return-types-or-not.problem.ts b/src/090-the-style-guide/214-where-to-put-your-types.solution.ts similarity index 100% rename from src/090-the-style-guide/214-explicit-return-types-or-not.problem.ts rename to src/090-the-style-guide/214-where-to-put-your-types.solution.ts diff --git a/src/090-the-style-guide/214-explicit-return-types-or-not.solution.ts b/src/090-the-style-guide/215-colocation-of-types.problem.ts similarity index 100% rename from src/090-the-style-guide/214-explicit-return-types-or-not.solution.ts rename to src/090-the-style-guide/215-colocation-of-types.problem.ts diff --git a/src/090-the-style-guide/215-any-vs-ts-ignore-vs-ts-expect-error.problem.ts b/src/090-the-style-guide/215-colocation-of-types.solution.ts similarity index 100% rename from src/090-the-style-guide/215-any-vs-ts-ignore-vs-ts-expect-error.problem.ts rename to src/090-the-style-guide/215-colocation-of-types.solution.ts diff --git a/src/090-the-style-guide/215-any-vs-ts-ignore-vs-ts-expect-error.solution.ts b/src/090-the-style-guide/216-explicit-any-rule-or-not.problem.ts similarity index 100% rename from src/090-the-style-guide/215-any-vs-ts-ignore-vs-ts-expect-error.solution.ts rename to src/090-the-style-guide/216-explicit-any-rule-or-not.problem.ts diff --git a/src/090-the-style-guide/216-result-type.problem.ts b/src/090-the-style-guide/216-explicit-any-rule-or-not.solution.ts similarity index 100% rename from src/090-the-style-guide/216-result-type.problem.ts rename to src/090-the-style-guide/216-explicit-any-rule-or-not.solution.ts diff --git a/src/090-the-style-guide/216-result-type.solution.ts b/src/090-the-style-guide/217-explicit-return-types-or-not.problem.ts similarity index 100% rename from src/090-the-style-guide/216-result-type.solution.ts rename to src/090-the-style-guide/217-explicit-return-types-or-not.problem.ts diff --git a/src/090-the-style-guide/217-dont-declare-type-and-value-with-the-same-name.problem.ts b/src/090-the-style-guide/217-explicit-return-types-or-not.solution.ts similarity index 100% rename from src/090-the-style-guide/217-dont-declare-type-and-value-with-the-same-name.problem.ts rename to src/090-the-style-guide/217-explicit-return-types-or-not.solution.ts diff --git a/src/090-the-style-guide/217-dont-declare-type-and-value-with-the-same-name.solution.ts b/src/090-the-style-guide/218-any-vs-ts-ignore-vs-ts-expect-error.problem.ts similarity index 100% rename from src/090-the-style-guide/217-dont-declare-type-and-value-with-the-same-name.solution.ts rename to src/090-the-style-guide/218-any-vs-ts-ignore-vs-ts-expect-error.problem.ts diff --git a/src/090-the-style-guide/218-types-vs-interfaces.problem.ts b/src/090-the-style-guide/218-any-vs-ts-ignore-vs-ts-expect-error.solution.ts similarity index 100% rename from src/090-the-style-guide/218-types-vs-interfaces.problem.ts rename to src/090-the-style-guide/218-any-vs-ts-ignore-vs-ts-expect-error.solution.ts diff --git a/src/090-the-style-guide/218-types-vs-interfaces.solution.ts b/src/090-the-style-guide/219-result-type.problem.ts similarity index 100% rename from src/090-the-style-guide/218-types-vs-interfaces.solution.ts rename to src/090-the-style-guide/219-result-type.problem.ts diff --git a/src/095-migrating-from-javascript/219-strict-file-by-file-vs-ramp-up-strictness.problem.ts b/src/090-the-style-guide/219-result-type.solution.ts similarity index 100% rename from src/095-migrating-from-javascript/219-strict-file-by-file-vs-ramp-up-strictness.problem.ts rename to src/090-the-style-guide/219-result-type.solution.ts diff --git a/src/095-migrating-from-javascript/219-strict-file-by-file-vs-ramp-up-strictness.solution.ts b/src/090-the-style-guide/220-dont-declare-type-and-value-with-the-same-name.problem.ts similarity index 100% rename from src/095-migrating-from-javascript/219-strict-file-by-file-vs-ramp-up-strictness.solution.ts rename to src/090-the-style-guide/220-dont-declare-type-and-value-with-the-same-name.problem.ts diff --git a/src/095-migrating-from-javascript/220-dependencies-first.problem.ts b/src/090-the-style-guide/220-dont-declare-type-and-value-with-the-same-name.solution.ts similarity index 100% rename from src/095-migrating-from-javascript/220-dependencies-first.problem.ts rename to src/090-the-style-guide/220-dont-declare-type-and-value-with-the-same-name.solution.ts diff --git a/src/095-migrating-from-javascript/220-dependencies-first.solution.ts b/src/090-the-style-guide/221-types-vs-interfaces.problem.ts similarity index 100% rename from src/095-migrating-from-javascript/220-dependencies-first.solution.ts rename to src/090-the-style-guide/221-types-vs-interfaces.problem.ts diff --git a/src/095-migrating-from-javascript/221-madge.problem.ts b/src/090-the-style-guide/221-types-vs-interfaces.solution.ts similarity index 100% rename from src/095-migrating-from-javascript/221-madge.problem.ts rename to src/090-the-style-guide/221-types-vs-interfaces.solution.ts diff --git a/src/095-migrating-from-javascript/221-madge.solution.ts b/src/090-the-style-guide/222-dont-use-uppercase-function-object-string-boolean-as-types.problem.ts similarity index 100% rename from src/095-migrating-from-javascript/221-madge.solution.ts rename to src/090-the-style-guide/222-dont-use-uppercase-function-object-string-boolean-as-types.problem.ts diff --git a/src/090-the-style-guide/222-dont-use-uppercase-function-object-string-boolean-as-types.solution.ts b/src/090-the-style-guide/222-dont-use-uppercase-function-object-string-boolean-as-types.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/223-dont-use-globally-available-types.problem.ts b/src/090-the-style-guide/223-dont-use-globally-available-types.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/223-dont-use-globally-available-types.solution.ts b/src/090-the-style-guide/223-dont-use-globally-available-types.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/224-how-strict-should-you-configure-ts.problem.ts b/src/090-the-style-guide/224-how-strict-should-you-configure-ts.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/090-the-style-guide/224-how-strict-should-you-configure-ts.solution.ts b/src/090-the-style-guide/224-how-strict-should-you-configure-ts.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/225-strict-file-by-file-vs-ramp-up-strictness.problem.ts b/src/095-migrating-from-javascript/225-strict-file-by-file-vs-ramp-up-strictness.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/225-strict-file-by-file-vs-ramp-up-strictness.solution.ts b/src/095-migrating-from-javascript/225-strict-file-by-file-vs-ramp-up-strictness.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/226-dependencies-first.problem.ts b/src/095-migrating-from-javascript/226-dependencies-first.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/226-dependencies-first.solution.ts b/src/095-migrating-from-javascript/226-dependencies-first.solution.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/227-madge.problem.ts b/src/095-migrating-from-javascript/227-madge.problem.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/095-migrating-from-javascript/227-madge.solution.ts b/src/095-migrating-from-javascript/227-madge.solution.ts new file mode 100644 index 0000000..e69de29