├── README.md ├── advanced-ts-for-teams ├── error-deep-dive-exercises │ ├── .gitignore │ ├── helpers.d copy.ts │ ├── helpers.d.ts │ ├── package.json │ ├── src │ │ ├── _utils.ts │ │ ├── debugging-namespaces.ts │ │ ├── debugging-overloads.ts │ │ ├── debugging-with-generics.ts │ │ └── deep-dives.ts │ ├── tsconfig.json │ └── yarn.lock ├── inference │ ├── .gitignore │ ├── helpers.d.ts │ ├── package.json │ ├── src │ │ ├── lessons │ │ │ └── boolean-let.ts │ │ └── problems │ │ │ ├── _utils.ts │ │ │ ├── deep-narrowing-in-function-args.problem.ts │ │ │ ├── deep-narrowing-in-function-args.solution.ts │ │ │ ├── generics-vs-overloads.problem.ts │ │ │ ├── generics-vs-overloads.solution.generics.ts │ │ │ ├── generics-vs-overloads.solution.overloads.ts │ │ │ ├── get-array-member.problem.ts │ │ │ ├── get-array-member.solution.ts │ │ │ ├── literals-vs-primitives-with-generics.problem.ts │ │ │ ├── literals-vs-primitives-with-generics.solution.ts │ │ │ ├── literals-vs-primitives.problem.ts │ │ │ ├── typeof.problem.ts │ │ │ └── typeof.solution.ts │ ├── tsconfig.json │ └── yarn.lock ├── prev │ ├── 01 │ │ ├── 01-runtime-vs-type-world.md │ │ ├── 011.ts │ │ ├── 02-exercises.problems.ts │ │ ├── 02-exercises.solutions.ts │ │ ├── 03-literals-typeof.md │ │ ├── 04-exercises.problems.ts │ │ ├── 04-exercises.solutions.ts │ │ ├── 05-functions-to-types-via-utility.md │ │ ├── 06-exercises.problems.ts │ │ ├── 06-exercises.solutions.ts │ │ ├── 07-type-transformations-q-a.md │ │ ├── frags.md │ │ └── planning.throwaway.md │ └── 03 │ │ └── frags.md └── slides │ ├── .gitignore │ ├── advanced │ ├── 01-let-const-exercise.ts │ ├── 02-as-const.ts │ ├── 03-array-member-extraction-with-typeof.ts │ ├── 04-object-value-extraction.ts │ ├── 05-function-inference.ts │ ├── 06-utility-types-playground.ts │ ├── 07-generics.ts │ ├── 08-string-literals.ts │ ├── 09-key-remapping.ts │ ├── exercise-design-system.ts │ ├── frags.ts │ ├── readme.md │ ├── xx-generic-positions.ts │ ├── xx1-resolving-multiple-generics.ts │ ├── xxx-generics-in-third-party-libs.ts │ └── xxx3-when-its-ok-to-use-any.ts │ ├── beginners │ ├── 01-basics.ts │ ├── 02-type-and-unions.ts │ ├── 03-functions.ts │ ├── 04-optional-types.ts │ ├── 05-index-signatures.ts │ ├── 06-practice.problem.ts │ ├── 06-practice.solution.ts │ └── 07-external-libs.ts │ ├── experiments │ ├── 02-apiMapping.code.ts │ ├── 02-apiMapping.exercise.ts │ ├── 03-roleBasedAccess.code.ts │ ├── 03-roleBasedAccess.exercise.ts │ ├── 05-wrapExternalLib.code.ts │ ├── 05-wrapExternalLib.exercise.ts │ ├── 06-isValidEmail.code.ts │ ├── 06-isValidEmail.exercise.ts │ ├── 07-createComponent.code.ts │ ├── 07-createComponent.exercise.ts │ ├── 08-safeQuerySelector.code.ts │ ├── 08-safeQuerySelector.exercise.ts │ ├── 08-safeQuerySelector.solutions.ts │ ├── 09-databaseSeeder.code.ts │ ├── 09-databaseSeeder.exercise.ts │ ├── 09-databaseSeeder.solutions.ts │ ├── 10-removeMapsFromObj.code.ts │ ├── 10-removeMapsFromObj.exercise.ts │ ├── 10-removeMapsFromObj.solutions.ts │ ├── 11-router.code.ts │ ├── 11-router.exercise.ts │ ├── 11-router.solutions.ts │ ├── external-lib │ │ ├── fetchUser.d.ts │ │ └── fetchUser.js │ ├── frags.ts │ └── securityPolicyViolationHandler.ts │ ├── ideas.md │ ├── package.json │ ├── tsconfig.json │ └── yarn.lock └── graph ├── .gitignore ├── content ├── apiMappings.md ├── as-const.md ├── assertion-functions.md ├── basic-generic-syntax.md ├── branded-ids.md ├── builderPattern.md ├── conditional-types.md ├── constraining-generics-with-extends.md ├── createComponent.md ├── currying-function-generics.md ├── databaseSeeder.md ├── debugging-errors.md ├── default-generics.md ├── dynamic-function-args.md ├── extending-globals.md ├── extracting-parameters.md ├── extracting-promises.md ├── extracting-return-types.md ├── f.narrow.md ├── find-in-definition.md ├── generics-in-classes.md ├── generics-in-functions.md ├── get-tuple-elements.md ├── import-typeof.md ├── infer.md ├── intersection-types.md ├── isValidEmail.md ├── k-in-keyof-as.md ├── k-in-keyof.md ├── keyof.md ├── literals-vs-primitives.md ├── makeRouter.md ├── namespaces.md ├── property-access-with-keyof.md ├── property-access-with-unions.md ├── property-access.md ├── removeMapsFromObj.md ├── roleBasedAccess.md ├── template-literals.md ├── tuples.md ├── typeof.md ├── using-external-modules.md ├── using-too-many-generics.md ├── when-its-ok-to-use-any.md └── wrap-external-lib.md ├── graph-docs.json ├── package.json ├── tsconfig.json └── yarn.lock /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/README.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/helpers.d copy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/helpers.d copy.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/helpers.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/helpers.d.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/package.json -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/src/_utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/src/_utils.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/src/debugging-namespaces.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/src/debugging-namespaces.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/src/debugging-overloads.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/src/debugging-overloads.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/src/debugging-with-generics.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/src/debugging-with-generics.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/src/deep-dives.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/src/deep-dives.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/tsconfig.json -------------------------------------------------------------------------------- /advanced-ts-for-teams/error-deep-dive-exercises/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/error-deep-dive-exercises/yarn.lock -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/helpers.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/helpers.d.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/package.json -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/lessons/boolean-let.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/lessons/boolean-let.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/_utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/_utils.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/deep-narrowing-in-function-args.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/deep-narrowing-in-function-args.problem.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/deep-narrowing-in-function-args.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/deep-narrowing-in-function-args.solution.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/generics-vs-overloads.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/generics-vs-overloads.problem.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/generics-vs-overloads.solution.generics.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/generics-vs-overloads.solution.generics.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/generics-vs-overloads.solution.overloads.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/generics-vs-overloads.solution.overloads.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/get-array-member.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/get-array-member.problem.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/get-array-member.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/get-array-member.solution.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/literals-vs-primitives-with-generics.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/literals-vs-primitives-with-generics.problem.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/literals-vs-primitives-with-generics.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/literals-vs-primitives-with-generics.solution.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/literals-vs-primitives.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/literals-vs-primitives.problem.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/typeof.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/typeof.problem.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/src/problems/typeof.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/src/problems/typeof.solution.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/tsconfig.json -------------------------------------------------------------------------------- /advanced-ts-for-teams/inference/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/inference/yarn.lock -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/01-runtime-vs-type-world.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/01-runtime-vs-type-world.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/011.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/011.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/02-exercises.problems.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/02-exercises.problems.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/02-exercises.solutions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/02-exercises.solutions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/03-literals-typeof.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/03-literals-typeof.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/04-exercises.problems.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/04-exercises.problems.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/04-exercises.solutions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/04-exercises.solutions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/05-functions-to-types-via-utility.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/05-functions-to-types-via-utility.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/06-exercises.problems.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/06-exercises.problems.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/06-exercises.solutions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/06-exercises.solutions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/07-type-transformations-q-a.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/07-type-transformations-q-a.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/frags.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/frags.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/01/planning.throwaway.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/01/planning.throwaway.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/prev/03/frags.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/prev/03/frags.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/01-let-const-exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/01-let-const-exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/02-as-const.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/02-as-const.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/03-array-member-extraction-with-typeof.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/03-array-member-extraction-with-typeof.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/04-object-value-extraction.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/04-object-value-extraction.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/05-function-inference.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/05-function-inference.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/06-utility-types-playground.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/06-utility-types-playground.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/07-generics.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/07-generics.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/08-string-literals.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/08-string-literals.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/09-key-remapping.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/09-key-remapping.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/exercise-design-system.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/exercise-design-system.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/frags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/frags.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/readme.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/xx-generic-positions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/xx-generic-positions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/xx1-resolving-multiple-generics.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/xx1-resolving-multiple-generics.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/xxx-generics-in-third-party-libs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/xxx-generics-in-third-party-libs.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/advanced/xxx3-when-its-ok-to-use-any.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/advanced/xxx3-when-its-ok-to-use-any.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/beginners/01-basics.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/beginners/01-basics.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/beginners/02-type-and-unions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/beginners/02-type-and-unions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/beginners/03-functions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/beginners/03-functions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/beginners/04-optional-types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/beginners/04-optional-types.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/beginners/05-index-signatures.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/beginners/05-index-signatures.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/beginners/06-practice.problem.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/beginners/06-practice.problem.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/beginners/06-practice.solution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/beginners/06-practice.solution.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/beginners/07-external-libs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/beginners/07-external-libs.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/02-apiMapping.code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/02-apiMapping.code.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/02-apiMapping.exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/02-apiMapping.exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/03-roleBasedAccess.code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/03-roleBasedAccess.code.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/03-roleBasedAccess.exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/03-roleBasedAccess.exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/05-wrapExternalLib.code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/05-wrapExternalLib.code.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/05-wrapExternalLib.exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/05-wrapExternalLib.exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/06-isValidEmail.code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/06-isValidEmail.code.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/06-isValidEmail.exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/06-isValidEmail.exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/07-createComponent.code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/07-createComponent.code.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/07-createComponent.exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/07-createComponent.exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/08-safeQuerySelector.code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/08-safeQuerySelector.code.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/08-safeQuerySelector.exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/08-safeQuerySelector.exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/08-safeQuerySelector.solutions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/08-safeQuerySelector.solutions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/09-databaseSeeder.code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/09-databaseSeeder.code.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/09-databaseSeeder.exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/09-databaseSeeder.exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/09-databaseSeeder.solutions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/09-databaseSeeder.solutions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/10-removeMapsFromObj.code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/10-removeMapsFromObj.code.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/10-removeMapsFromObj.exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/10-removeMapsFromObj.exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/10-removeMapsFromObj.solutions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/10-removeMapsFromObj.solutions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/11-router.code.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/11-router.code.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/11-router.exercise.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/11-router.exercise.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/11-router.solutions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/11-router.solutions.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/external-lib/fetchUser.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/external-lib/fetchUser.d.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/external-lib/fetchUser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/external-lib/fetchUser.js -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/frags.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/frags.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/experiments/securityPolicyViolationHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/experiments/securityPolicyViolationHandler.ts -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/ideas.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/ideas.md -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/package.json -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/tsconfig.json -------------------------------------------------------------------------------- /advanced-ts-for-teams/slides/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/advanced-ts-for-teams/slides/yarn.lock -------------------------------------------------------------------------------- /graph/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /graph/content/apiMappings.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/apiMappings.md -------------------------------------------------------------------------------- /graph/content/as-const.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["literals-vs-primitives"] 3 | group: apiMappings 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/assertion-functions.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: "isValidEmail" 3 | --- 4 | -------------------------------------------------------------------------------- /graph/content/basic-generic-syntax.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: "wrapExternalLib" 3 | --- 4 | -------------------------------------------------------------------------------- /graph/content/branded-ids.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/branded-ids.md -------------------------------------------------------------------------------- /graph/content/builderPattern.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/builderPattern.md -------------------------------------------------------------------------------- /graph/content/conditional-types.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/conditional-types.md -------------------------------------------------------------------------------- /graph/content/constraining-generics-with-extends.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/constraining-generics-with-extends.md -------------------------------------------------------------------------------- /graph/content/createComponent.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/createComponent.md -------------------------------------------------------------------------------- /graph/content/currying-function-generics.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["generics-in-functions"] 3 | group: "databaseSeeder" 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/databaseSeeder.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/databaseSeeder.md -------------------------------------------------------------------------------- /graph/content/debugging-errors.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/debugging-errors.md -------------------------------------------------------------------------------- /graph/content/default-generics.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/default-generics.md -------------------------------------------------------------------------------- /graph/content/dynamic-function-args.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/dynamic-function-args.md -------------------------------------------------------------------------------- /graph/content/extending-globals.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: [] 3 | --- 4 | -------------------------------------------------------------------------------- /graph/content/extracting-parameters.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/extracting-parameters.md -------------------------------------------------------------------------------- /graph/content/extracting-promises.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/extracting-promises.md -------------------------------------------------------------------------------- /graph/content/extracting-return-types.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/extracting-return-types.md -------------------------------------------------------------------------------- /graph/content/f.narrow.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/f.narrow.md -------------------------------------------------------------------------------- /graph/content/find-in-definition.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: [] 3 | --- 4 | -------------------------------------------------------------------------------- /graph/content/generics-in-classes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/generics-in-classes.md -------------------------------------------------------------------------------- /graph/content/generics-in-functions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/generics-in-functions.md -------------------------------------------------------------------------------- /graph/content/get-tuple-elements.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/get-tuple-elements.md -------------------------------------------------------------------------------- /graph/content/import-typeof.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["typeof"] 3 | --- 4 | -------------------------------------------------------------------------------- /graph/content/infer.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["conditional-types"] 3 | group: "removeMapsFromObj" 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/intersection-types.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: [] 3 | group: "isValidEmail" 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/isValidEmail.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/isValidEmail.md -------------------------------------------------------------------------------- /graph/content/k-in-keyof-as.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["k-in-keyof"] 3 | group: "removeMapsFromObj" 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/k-in-keyof.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["keyof"] 3 | group: "removeMapsFromObj" 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/keyof.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: apiMappings 3 | --- 4 | -------------------------------------------------------------------------------- /graph/content/literals-vs-primitives.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: [] 3 | # group: "roleBasedAccess" 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/makeRouter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/makeRouter.md -------------------------------------------------------------------------------- /graph/content/namespaces.md: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | -------------------------------------------------------------------------------- /graph/content/property-access-with-keyof.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["property-access-with-unions"] 3 | group: apiMappings 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/property-access-with-unions.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["property-access"] 3 | group: apiMappings 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/property-access.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: [] 3 | group: apiMappings 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/removeMapsFromObj.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/removeMapsFromObj.md -------------------------------------------------------------------------------- /graph/content/roleBasedAccess.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/roleBasedAccess.md -------------------------------------------------------------------------------- /graph/content/template-literals.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["literals-vs-primitives"] 3 | group: "removeMapsFromObj" 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/tuples.md: -------------------------------------------------------------------------------- 1 | --- 2 | group: "roleBasedAccess" 3 | --- 4 | -------------------------------------------------------------------------------- /graph/content/typeof.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: [] 3 | group: apiMappings 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/using-external-modules.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: [] 3 | --- 4 | -------------------------------------------------------------------------------- /graph/content/using-too-many-generics.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: ["generics-in-functions"] 3 | --- 4 | -------------------------------------------------------------------------------- /graph/content/when-its-ok-to-use-any.md: -------------------------------------------------------------------------------- 1 | --- 2 | deps: [] 3 | group: "roleBasedAccess" 4 | --- 5 | -------------------------------------------------------------------------------- /graph/content/wrap-external-lib.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/content/wrap-external-lib.md -------------------------------------------------------------------------------- /graph/graph-docs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/graph-docs.json -------------------------------------------------------------------------------- /graph/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/package.json -------------------------------------------------------------------------------- /graph/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/tsconfig.json -------------------------------------------------------------------------------- /graph/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattpocock/workshops/HEAD/graph/yarn.lock --------------------------------------------------------------------------------