<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://typescriptpro.com</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://typescriptpro.com/blog</loc>
<lastmod>2026-07-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://typescriptpro.com/concepts</loc>
<lastmod>2025-12-02T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/warm-up</loc>
<lastmod>2025-07-06T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium</loc>
<lastmod>2026-06-10T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/warm-up/hello-world</loc>
<lastmod>2025-07-06T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/pick</loc>
<lastmod>2025-07-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/readonly</loc>
<lastmod>2025-07-24T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/tuple-to-object</loc>
<lastmod>2025-07-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/first-of-array</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/length-of-tuple</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/exclude</loc>
<lastmod>2025-07-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/awaited</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/if</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/concat</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/includes</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/push</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/unshift</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/easy/parameters</loc>
<lastmod>2025-08-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/get-return-type</loc>
<lastmod>2025-08-04T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/omit</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/readonly-2</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/deep-readonly</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/tuple-to-union</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/chainable-options</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/last-of-array</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/pop</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/promiseall</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/type-lookup</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/trim-left</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/trim</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/capitalize</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/replace</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/replaceall</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/append-argument</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/permutation</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/length-of-string</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/flatten</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/append-to-object</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/absolute</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/string-to-union</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/merge</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/kebabcase</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/diff</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/anyof</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/isnever</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/isunion</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/replacekeys</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/remove-index-signature</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/percentage-parser</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/drop-char</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/minusone</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/pickbytype</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/startswith</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/endswith</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/partialbykeys</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/requiredbykeys</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/mutable</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/omitbytype</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/objectentries</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/shift</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/tuple-to-nested-object</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/reverse</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/flip-arguments</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/flattendepth</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/bem-style-string</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/inordertraversal</loc>
<lastmod>2026-06-10T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/flip</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/fibonacci-sequence</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/allcombinations</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/greater-than</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/zip</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/istuple</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/chunk</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/fill</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/trim-right</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/without</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/trunc</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/indexof</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/join</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/lastindexof</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/unique</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/maptypes</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/construct-tuple</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/number-range</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/combination</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/subsequence</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/checkrepeatedchars</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/firstuniquecharindex</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/parse-url-params</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/getmiddleelement</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/appear-only-once</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/count-element-number-to-object</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/integer</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/toprimitive</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/deepmutable</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/all</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/filter</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/isequal</loc>
<lastmod>2026-06-10T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/findall</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/combination-key-type</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/permutations-of-tuple</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/replace-first</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/transpose</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/json-schema-to-typescript</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/square</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/triangular-number</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/cartesianproduct</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/mergeall</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/checkrepeatedtuple</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/public-type</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/extracttoobject</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/deep-omit</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/isodd</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/tower-of-hanoi</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/pascals-triangle</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/isfixedstringliteraltype</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/compare-array-length</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/defined-partial-record</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/longest-common-prefix</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/trace</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/isalphabet</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/medium/myuppercase</loc>
<lastmod>2026-02-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/simple-vue</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/currying-1</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/union-to-intersection</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/get-required</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/get-optional</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/required-keys</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/optional-keys</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/capitalize-words</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/camelcase</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/c-printf-parser</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/vue-basic-props</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/isany</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/typed-get</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/string-to-number</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/tuple-filter</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/tuple-to-enum-object</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/printf</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/deep-object-to-unique</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/length-of-string-2</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/union-to-tuple</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/string-join</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/deeppick</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/pinia</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/camelize</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/drop-string</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/split</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/classpublickeys</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/isrequiredkey</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/objectfromentries</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/ispalindrome</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/mutable-keys</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/intersection</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/binary-to-decimal</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/object-key-paths</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/two-sum</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/validdate</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/assign</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/maximum</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/capitalize-nest-object-keys</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/replace-union</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/fizzbuzz</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/run-length-encoding</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/tree-path-array</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/snakecase</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/isnegativenumber</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/optionalundefined</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/unique-items</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/bitwisexor</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/sudoku</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/length-of-string-3</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/unbox</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/binary-addition</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/union-to-object-from-key</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/take-elements</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/challenges/hard/valid-sudoku</loc>
<lastmod>2026-08-05T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://typescriptpro.com/blog/typescript-version-7-2026-07-08</loc>
<lastmod>2026-07-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/blog/typescript-version-7-current-status-2025-12-22</loc>
<lastmod>2025-12-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/blog/typescript-version-5-9</loc>
<lastmod>2025-08-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/concepts/interfaces</loc>
<lastmod>2025-12-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/concepts/intersection-types</loc>
<lastmod>2025-09-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/concepts/enums</loc>
<lastmod>2025-09-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/concepts/union-types</loc>
<lastmod>2025-08-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/concepts/template-literals</loc>
<lastmod>2025-08-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/concepts/mapped-types</loc>
<lastmod>2025-08-16T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/concepts/generics</loc>
<lastmod>2025-08-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts1005</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2304</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2322</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2339</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2345</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2352</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2531</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2532</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2551</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2554</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2556</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2564</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2571</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2683</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2740</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts2769</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts7006</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts7022</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://typescriptpro.com/errors/ts18046</loc>
<lastmod>2026-03-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
