<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>TypeNotes</title><description>Practical notes for TypeScript devs</description><link>https://typenotes.io/</link><item><title>Compiling TypeScript with tsc watch</title><link>https://typenotes.io/notes/compiling-typescript-with-tsc-watch/</link><guid isPermaLink="true">https://typenotes.io/notes/compiling-typescript-with-tsc-watch/</guid><description>How to compile TypeScript files without a TypeScript project</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Either/or typed props in TypeScript</title><link>https://typenotes.io/notes/either-or-typed-props/</link><guid isPermaLink="true">https://typenotes.io/notes/either-or-typed-props/</guid><description>How to require exactly one of two props—never both, never neither</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Inspecting TypeScript&apos;s inferred types</title><link>https://typenotes.io/notes/inspecting-typescript-inferences/</link><guid isPermaLink="true">https://typenotes.io/notes/inspecting-typescript-inferences/</guid><description>How to inspect and understand TypeScript inferred types</description><pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate></item><item><title>JavaScript loose equality (==) and type coercion</title><link>https://typenotes.io/notes/javascript-loose-equality-and-type-coercion/</link><guid isPermaLink="true">https://typenotes.io/notes/javascript-loose-equality-and-type-coercion/</guid><description>Exploring the equality comparator, ==</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate></item><item><title>JSDoc deprecations in TypeScript</title><link>https://typenotes.io/notes/js-doc-deprecations-in-typescript/</link><guid isPermaLink="true">https://typenotes.io/notes/js-doc-deprecations-in-typescript/</guid><description>How to mark a TypeScript API as deprecated so editors warn your team</description><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Migrate to TypeScript by typing a seam first</title><link>https://typenotes.io/notes/migrate-to-typescript-by-typing-a-seam-first/</link><guid isPermaLink="true">https://typenotes.io/notes/migrate-to-typescript-by-typing-a-seam-first/</guid><description>How to tactically migrate from JavaScript to TypeScript</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Non-null assertion with getElementById in TypeScript</title><link>https://typenotes.io/notes/non-null-assertion-with-getelementbyid/</link><guid isPermaLink="true">https://typenotes.io/notes/non-null-assertion-with-getelementbyid/</guid><description>How to understand the bang in createRoot call</description><pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Path aliases in TypeScript</title><link>https://typenotes.io/notes/path-aliases-in-typescript/</link><guid isPermaLink="true">https://typenotes.io/notes/path-aliases-in-typescript/</guid><description>How to ditch ../../ relative imports in TypeScript</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Running TypeScript in a REPL with tsx</title><link>https://typenotes.io/notes/running-typescript-in-a-repl-with-tsx/</link><guid isPermaLink="true">https://typenotes.io/notes/running-typescript-in-a-repl-with-tsx/</guid><description>How to run TypeScript in a REPL</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Type-only imports and exports</title><link>https://typenotes.io/notes/type-only-imports-and-exports/</link><guid isPermaLink="true">https://typenotes.io/notes/type-only-imports-and-exports/</guid><description>How to tell TypeScript which imports to remove at compile time</description><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Type-safe string state instead of booleans</title><link>https://typenotes.io/notes/type-safe-strings-in-state-instead-of-booleans/</link><guid isPermaLink="true">https://typenotes.io/notes/type-safe-strings-in-state-instead-of-booleans/</guid><description>A better way to manage state with type safety</description><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate></item><item><title>TypeScript generics via the identity function</title><link>https://typenotes.io/notes/typescript-generics-via-the-identity-function/</link><guid isPermaLink="true">https://typenotes.io/notes/typescript-generics-via-the-identity-function/</guid><description>How a one-line identity function explains what generics are for</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Accepting string or number IDs in TypeScript</title><link>https://typenotes.io/notes/typing-liberal-primary-keys/</link><guid isPermaLink="true">https://typenotes.io/notes/typing-liberal-primary-keys/</guid><description>Applying the robustness principle to IDs</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Union type from array in TypeScript</title><link>https://typenotes.io/notes/union-type-from-array/</link><guid isPermaLink="true">https://typenotes.io/notes/union-type-from-array/</guid><description>How to turn a JavaScript array into a TypeScript union type</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>When to explicitly type functions in TypeScript</title><link>https://typenotes.io/notes/when-to-explicitly-type-functions/</link><guid isPermaLink="true">https://typenotes.io/notes/when-to-explicitly-type-functions/</guid><description>How to decide when to type your functions—and when to let TypeScript infer</description><pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Why TypeScript error codes aren&apos;t documented</title><link>https://typenotes.io/notes/why-typescript-error-codes-arent-documented/</link><guid isPermaLink="true">https://typenotes.io/notes/why-typescript-error-codes-arent-documented/</guid><description>How to pragmatically work with TypeScript errors</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item></channel></rss>