41554 blogs · [ { "id": "01a0b878-5581-709e-ae22-fed3d7d98b45", "title": "Cursor Rules for Better AI Development (article)", "url": "https://www.totaltypescript.com/cursor-rules-for-better-ai-development", "published_at": "2025-04-23T16:45:00+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3d89aead1", "title": "Should You Declare Return Types? (article)", "url": "https://www.totaltypescript.com/should-you-declare-return-types", "published_at": "2025-04-09T14:25:50+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3d98be481", "title": "TypeScript Announces Go Rewrite, Achieves 10x Speedup (article)", "url": "https://www.totaltypescript.com/typescript-announces-go-rewrite", "published_at": "2025-03-11T14:36:07+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3d9c704ec", "title": "TypeScript 5.8 Ships --erasableSyntaxOnly To Disable Enums (article)", "url": "https://www.totaltypescript.com/erasable-syntax-only", "published_at": "2025-01-24T17:31:55+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3da523025", "title": "Node.js Now Supports TypeScript By Default (article)", "url": "https://www.totaltypescript.com/typescript-is-coming-to-node-23", "published_at": "2024-12-27T16:31:28+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3da6d42bc", "title": "This Crazy Syntax Lets You Get An Array Element's Type (article)", "url": "https://www.totaltypescript.com/get-the-type-of-an-array-element", "published_at": "2024-09-02T10:16:40+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3db4e981c", "title": "How To Create An NPM Package (article)", "url": "https://www.totaltypescript.com/how-to-create-an-npm-package", "published_at": "2024-08-21T15:36:51+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3dbf385b5", "title": "Why I Don't Like Enums (article)", "url": "https://www.totaltypescript.com/why-i-dont-like-typescript-enums", "published_at": "2024-08-14T12:21:09+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3dcd7a05f", "title": "Is TypeScript Just A Linter? (article)", "url": "https://www.totaltypescript.com/is-typescript-just-a-linter", "published_at": "2024-07-15T14:20:42+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3dd381007", "title": "Announcing: A Free Book, A New Course, A Huge Price Cut... (article)", "url": "https://www.totaltypescript.com/announcing-a-free-book-a-course-a-huge-price-cut", "published_at": "2024-07-08T10:26:19+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3dda58ba1", "title": "Sometimes, Object Property Order Matters (article)", "url": "https://www.totaltypescript.com/property-order-matters", "published_at": "2024-06-11T15:40:24+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3de15ceba", "title": "How To Use Corepack (article)", "url": "https://www.totaltypescript.com/how-to-use-corepack", "published_at": "2024-06-02T08:28:26+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee86384563", "title": "TypeScript Pro Essentials (workshop)", "url": "https://www.totaltypescript.com/workshops/typescript-pro-essentials", "published_at": "2024-04-08T23:05:39+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3dec25ec0", "title": "How To Strongly Type process.env (article)", "url": "https://www.totaltypescript.com/how-to-strongly-type-process-env", "published_at": "2024-04-04T15:03:37+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3decbe93c", "title": "`any` Considered Harmful, Except For These Cases (article)", "url": "https://www.totaltypescript.com/any-considered-harmful", "published_at": "2024-03-27T08:33:27+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3df32e013", "title": "No, TypeScript Types Don't Exist At Runtime (article)", "url": "https://www.totaltypescript.com/typescript-types-dont-exist-at-runtime", "published_at": "2024-03-25T09:15:44+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3e022ab4b", "title": "This Pattern Will Wreck Your React App's TS Performance (article)", "url": "https://www.totaltypescript.com/react-apps-ts-performance", "published_at": "2024-03-20T16:57:34+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3e07db7a6", "title": "Deriving vs Decoupling: When NOT To Be A TypeScript Wizard (article)", "url": "https://www.totaltypescript.com/deriving-vs-decoupling", "published_at": "2024-03-20T11:19:35+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3e084385c", "title": "NoInfer: TypeScript 5.4's New Utility Type (article)", "url": "https://www.totaltypescript.com/noinfer", "published_at": "2024-03-19T19:16:52+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3e0b78f8f", "title": "Build a Node App with TypeScript (article)", "url": "https://www.totaltypescript.com/typescript-and-node", "published_at": "2024-03-17T13:01:56+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee677e9d56", "title": "Type Predicate Inference: The TS 5.5 Feature No One Expected (article)", "url": "https://www.totaltypescript.com/type-predicate-inference", "published_at": "2024-03-17T09:02:00+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee67ae52a6", "title": "You Can't Make Children \"Type Safe\" in React & TypeScript (article)", "url": "https://www.totaltypescript.com/type-safe-children-in-react-and-typescript", "published_at": "2024-03-15T16:11:52+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee67b2ce61", "title": "Make Your Functions More Reusable With Generics (article)", "url": "https://www.totaltypescript.com/make-your-functions-more-reusable-with-generics", "published_at": "2024-03-13T14:51:20+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee684b439f", "title": "How To Type Array.reduce (article)", "url": "https://www.totaltypescript.com/how-to-type-array-reduce", "published_at": "2024-03-13T13:00:04+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee688951d2", "title": "How let and const Work In TypeScript (article)", "url": "https://www.totaltypescript.com/let-and-const", "published_at": "2024-02-23T14:47:52+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee68f5f5c6", "title": "How To Pass Types To Functions (article)", "url": "https://www.totaltypescript.com/passing-types-to-functions", "published_at": "2024-02-22T15:46:16+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee69865c3a", "title": "When 'as never' Is The Only Thing That Works (article)", "url": "https://www.totaltypescript.com/as-never", "published_at": "2024-02-05T11:12:22+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee69990b03", "title": "Method Shorthand Syntax Considered Harmful (article)", "url": "https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful", "published_at": "2024-02-03T10:49:21+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6a58597a", "title": "How To Use forwardRef With Generic Components (article)", "url": "https://www.totaltypescript.com/forwardref-with-generic-components", "published_at": "2024-01-31T14:25:39+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3bfe2122e", "title": "Solving TypeScript Errors (tutorial)", "url": "https://www.totaltypescript.com/tutorials/solving-typescript-errors", "published_at": "2023-11-30T21:30:30+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6ae0857f", "title": "The TypeScript 5.3 Feature They Didn't Tell You About (article)", "url": "https://www.totaltypescript.com/the-typescript-5-3-feature-they-didn-t-tell-you-about", "published_at": "2023-11-29T13:13:04+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c2300755", "title": "Type Predicates (tip)", "url": "https://www.totaltypescript.com/tips/type-predicates", "published_at": "2023-11-01T13:38:10+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6b161bad", "title": "\"Sorry, I Need A TypeScript Playground In Order To Help\" (article)", "url": "https://www.totaltypescript.com/need-a-playground", "published_at": "2023-10-25T13:32:35+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6bdf24cf", "title": "Event Types in React and TypeScript (article)", "url": "https://www.totaltypescript.com/event-types-in-react-and-typescript", "published_at": "2023-10-24T08:51:57+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6c105dab", "title": "Build a Node App With TypeScript & ESBuild (article)", "url": "https://www.totaltypescript.com/build-a-node-app-with-typescript-and-esbuild", "published_at": "2023-10-17T10:15:58+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6c2166a9", "title": "Relative import paths need explicit file extensions in EcmaScript imports (article)", "url": "https://www.totaltypescript.com/relative-import-paths-need-explicit-file-extensions-in-ecmascript-imports", "published_at": "2023-10-10T10:11:14+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6d16224d", "title": "Add TypeScript To An Existing React Project (article)", "url": "https://www.totaltypescript.com/add-typescript-to-existing-react-project", "published_at": "2023-09-15T10:34:26+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6dd030d4", "title": "The TSConfig Cheat Sheet (article)", "url": "https://www.totaltypescript.com/tsconfig-cheat-sheet", "published_at": "2023-09-13T15:49:01+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6e974e47", "title": "Are Big Projects Ditching TypeScript? (article)", "url": "https://www.totaltypescript.com/are-big-projects-ditching-typescript", "published_at": "2023-09-11T14:31:02+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6f5b21aa", "title": "How to Pass a Component as a Prop in React (article)", "url": "https://www.totaltypescript.com/pass-component-as-prop-react", "published_at": "2023-09-04T15:36:04+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6fc2bbb0", "title": "Intro To TypeScript Performance (article)", "url": "https://www.totaltypescript.com/typescript-performance", "published_at": "2023-09-04T11:43:51+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee6fc8c220", "title": "Strongly Typing React Props with TypeScript (article)", "url": "https://www.totaltypescript.com/react-props-typescript", "published_at": "2023-09-04T10:08:18+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7048fa08", "title": "How To Learn TypeScript In 2025 (article)", "url": "https://www.totaltypescript.com/learn-typescript", "published_at": "2023-08-31T12:17:01+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee70a83cca", "title": "Override the Type of a JSON File (article)", "url": "https://www.totaltypescript.com/override-the-type-of-a-json-file", "published_at": "2023-08-29T09:26:08+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee716a3692", "title": "What's Coming In TypeScript 5.3? (article)", "url": "https://www.totaltypescript.com/typescript-5-3", "published_at": "2023-08-24T11:43:10+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee71d6b1be", "title": "Array vs T[]: Which is better? (article)", "url": "https://www.totaltypescript.com/array-types-in-typescript", "published_at": "2023-08-22T11:24:39+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee72d1779f", "title": "5 Ways to Use 'Satisfies' in TypeScript (article)", "url": "https://www.totaltypescript.com/how-to-use-satisfies-operator", "published_at": "2023-08-02T11:11:39+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee732c866b", "title": "6 Ways to Use Extract in TypeScript (article)", "url": "https://www.totaltypescript.com/uses-for-extract-type-helper", "published_at": "2023-08-02T09:01:57+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee73e22b84", "title": "Explained: Cannot redeclare block-scoped variable (article)", "url": "https://www.totaltypescript.com/cannot-redeclare-block-scoped-variable", "published_at": "2023-08-02T07:57:18+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee74729118", "title": "Type vs Interface: Which Should You Use? (article)", "url": "https://www.totaltypescript.com/type-vs-interface-which-should-you-use", "published_at": "2023-07-31T09:32:44+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee75132e21", "title": "Why You Can't Use Dot Notation On Types (article)", "url": "https://www.totaltypescript.com/why-you-cant-use-dot-notation-on-types", "published_at": "2023-07-26T07:53:20+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7517794a", "title": "Strongly Type useRef with ElementRef (article)", "url": "https://www.totaltypescript.com/strongly-type-useref-with-elementref", "published_at": "2023-07-25T14:36:13+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee75563459", "title": "Explained: Cannot use JSX unless the '--jsx' flag is provided (article)", "url": "https://www.totaltypescript.com/cannot-use-jsx-unless-the-jsx-flag-is-provided", "published_at": "2023-07-25T13:34:19+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee755c9f8f", "title": "There Is No Such Thing As A Generic (article)", "url": "https://www.totaltypescript.com/no-such-thing-as-a-generic", "published_at": "2023-07-20T14:01:04+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee761f9b8b", "title": "TypeScript Generics in 3 Easy Patterns (article)", "url": "https://www.totaltypescript.com/typescript-generics-in-three-easy-patterns", "published_at": "2023-07-18T17:35:20+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee768ed2c8", "title": "How to Iterate Over Object Keys in TypeScript (article)", "url": "https://www.totaltypescript.com/iterate-over-object-keys-in-typescript", "published_at": "2023-07-18T13:29:53+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee76aeb318", "title": "An `unknown` can't always fix an `any` (article)", "url": "https://www.totaltypescript.com/an-unknown-cant-always-fix-an-any", "published_at": "2023-07-14T18:16:43+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee774536e0", "title": "My advice for security-critical TS apps (article)", "url": "https://www.totaltypescript.com/my-advice-for-security-critical-ts-apps", "published_at": "2023-07-14T18:13:28+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee77ee2293", "title": "Four Essential TypeScript Patterns You Can't Work Without (article)", "url": "https://www.totaltypescript.com/four-essential-typescript-patterns", "published_at": "2023-07-14T18:08:08+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee78de13a0", "title": "Optional Chaining for Assignments Lands in Stage 1 (article)", "url": "https://www.totaltypescript.com/optional-chaining-for-assignments", "published_at": "2023-07-13T14:17:44+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee871e9146", "title": "Advanced React with TypeScript (workshop)", "url": "https://www.totaltypescript.com/workshops/advanced-react-with-typescript", "published_at": "2023-07-06T18:26:32+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee79addcc7", "title": "Type Argument Placeholders: TypeScript's Most Discussed Upcoming Feature (article)", "url": "https://www.totaltypescript.com/type-argument-placeholders-typescript-5-2-most-discussed-feature", "published_at": "2023-06-21T11:35:24+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee79ea910c", "title": "The Empty Object Type in TypeScript (article)", "url": "https://www.totaltypescript.com/the-empty-object-type-in-typescript", "published_at": "2023-06-20T09:42:33+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7a234b2b", "title": "TypeScript 5.2's New Keyword: 'using' (article)", "url": "https://www.totaltypescript.com/typescript-5-2-new-keyword-using", "published_at": "2023-06-16T09:52:22+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7b1aa07b", "title": "Get Keys of an Object Where Values Are of a Given Type (article)", "url": "https://www.totaltypescript.com/get-keys-of-an-object-where-values-are-of-a-given-type", "published_at": "2023-06-15T14:13:15+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7bb9a9ca", "title": "How to Properly Type Window (article)", "url": "https://www.totaltypescript.com/how-to-properly-type-window", "published_at": "2023-06-14T10:24:28+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7c770b7d", "title": "Since TypeScript 5.1, React.FC is now \"fine\" (article)", "url": "https://www.totaltypescript.com/you-can-stop-hating-react-fc", "published_at": "2023-06-12T13:35:14+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7d595987", "title": "What is JSX.IntrinsicElements? (article)", "url": "https://www.totaltypescript.com/what-is-jsx-intrinsicelements", "published_at": "2023-05-30T08:40:01+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7d700724", "title": "Explained: 'React' refers to a UMD global (article)", "url": "https://www.totaltypescript.com/react-refers-to-a-umd-global", "published_at": "2023-05-25T13:49:49+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7e4c824a", "title": "React.ReactNode vs JSX.Element vs React.ReactElement (article)", "url": "https://www.totaltypescript.com/jsx-element-vs-react-reactnode", "published_at": "2023-05-25T13:45:15+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7e75bb19", "title": "Transform Any Union in TypeScript with the IIMT (article)", "url": "https://www.totaltypescript.com/immediately-indexed-mapped-type", "published_at": "2023-05-24T08:39:50+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7f040540", "title": "Where To Put Your Types in Application Code (article)", "url": "https://www.totaltypescript.com/where-to-put-your-types-in-application-code", "published_at": "2023-05-23T16:39:38+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7f92a471", "title": "ComponentProps: React's Most Useful Type Helper (article)", "url": "https://www.totaltypescript.com/react-component-props-type-helper", "published_at": "2023-05-04T10:15:56+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c0c2a652", "title": "React with TypeScript (tutorial)", "url": "https://www.totaltypescript.com/tutorials/react-with-typescript", "published_at": "2023-05-01T19:43:38+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee7fe05b38", "title": "How to test your types (article)", "url": "https://www.totaltypescript.com/how-to-test-your-types", "published_at": "2023-04-25T15:43:39+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee80341588", "title": "Everything you need to know about TypeScript 5.1 beta (article)", "url": "https://www.totaltypescript.com/typescript-5-1-beta-breakdown", "published_at": "2023-04-21T09:09:34+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c2a595b6", "title": "TypeScript 5.1 Beta is OUT! (tip)", "url": "https://www.totaltypescript.com/tips/typescript-5-1-beta-is-out", "published_at": "2023-04-19T11:50:53+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c2dd6ab9", "title": "How to Name your Types (tip)", "url": "https://www.totaltypescript.com/tips/how-to-name-your-types", "published_at": "2023-04-12T11:03:34+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee80fa31e7", "title": "Testing with TypeScript is Painful: Here's a Solution (article)", "url": "https://www.totaltypescript.com/testing-with-typescript-is-painful-heres-a-solution", "published_at": "2023-04-11T16:35:25+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee817b2b43", "title": "Function types are weird in TypeScript (article)", "url": "https://www.totaltypescript.com/function-types-are-weird-in-typescript", "published_at": "2023-04-11T14:30:49+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee81e982e2", "title": "Const type parameters bring 'as const' to functions (article)", "url": "https://www.totaltypescript.com/const-type-parameters", "published_at": "2023-04-11T13:36:41+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee81f6811a", "title": "9 Ways to Use Exclude in TypeScript (article)", "url": "https://www.totaltypescript.com/uses-for-exclude-type-helper", "published_at": "2023-04-05T11:18:23+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee8294198f", "title": "TypeScript Discriminated Unions for Frontend Developers (article)", "url": "https://www.totaltypescript.com/discriminated-unions-are-a-devs-best-friend", "published_at": "2023-03-29T15:32:25+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee829673b8", "title": "Clarifying the `satisfies` Operator (article)", "url": "https://www.totaltypescript.com/clarifying-the-satisfies-operator", "published_at": "2023-03-13T22:06:14+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c3aea34a", "title": "Don't use return types, unless... (tip)", "url": "https://www.totaltypescript.com/tips/dont-use-return-types-unless", "published_at": "2023-02-01T10:24:45+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c4a68442", "title": "TypeScript 5.0 Beta Deep Dive (tip)", "url": "https://www.totaltypescript.com/tips/typescript-5-0-beta-deep-dive", "published_at": "2023-01-27T12:00:06+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee832f7ed3", "title": "Structure of a TypeScript Error (article)", "url": "https://www.totaltypescript.com/structure-of-a-typescript-error", "published_at": "2023-01-09T13:50:25+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee833acaf2", "title": "Building the Mental Model for Generics (article)", "url": "https://www.totaltypescript.com/mental-model-for-typescript-generics", "published_at": "2023-01-09T09:04:14+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee83f9a33b", "title": "When should you use Zod? (article)", "url": "https://www.totaltypescript.com/when-should-you-use-zod", "published_at": "2023-01-07T08:27:42+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee847236c1", "title": "Writing string.replace in TypeScript (article)", "url": "https://www.totaltypescript.com/writing-string-replace-in-typescript", "published_at": "2022-12-12T12:29:55+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee8555f509", "title": "Rewriting TypeScript in Rust? You'd have to be... (article)", "url": "https://www.totaltypescript.com/rewriting-typescript-in-rust", "published_at": "2022-12-12T11:34:30+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee85c85629", "title": "Don't use Function type in TypeScript (article)", "url": "https://www.totaltypescript.com/dont-use-function-keyword-in-typescript", "published_at": "2022-12-12T11:31:27+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee872b96bc", "title": "Advanced TypeScript Patterns (workshop)", "url": "https://www.totaltypescript.com/workshops/advanced-typescript-patterns", "published_at": "2022-11-28T20:46:38+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee87a39074", "title": "TypeScript Generics (workshop)", "url": "https://www.totaltypescript.com/workshops/typescript-generics", "published_at": "2022-11-28T20:38:15+00:00" }, { "id": "01a0b878-5582-7261-a2ef-16ee87d0af01", "title": "Type Transformations (workshop)", "url": "https://www.totaltypescript.com/workshops/type-transformations", "published_at": "2022-11-01T18:49:56+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c4e6eaed", "title": "Conform a Derived Type Without Losing Its Literal Values (tip)", "url": "https://www.totaltypescript.com/tips/conform-a-derived-type-without-losing-its-literal-values", "published_at": "2022-10-26T17:54:33+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c0e19755", "title": "Beginner's TypeScript (tutorial)", "url": "https://www.totaltypescript.com/tutorials/beginners-typescript", "published_at": "2022-09-23T23:13:43+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c548ad94", "title": "Avoid unexpected behavior of React’s useState (tip)", "url": "https://www.totaltypescript.com/tips/avoid-unexpected-behaviour-of-react-s-usestate", "published_at": "2022-09-23T08:54:43+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c62392c9", "title": "Understand assignability in TypeScript (tip)", "url": "https://www.totaltypescript.com/tips/understand-assignability-in-typescript", "published_at": "2022-09-23T08:53:29+00:00" }, { "id": "01a0b878-5581-709e-ae22-fed3c68b7e26", "title": "Compare function overloads and generics (tip)", "url": "https://www.totaltypescript.com/tips/compare-function-overloads-and-generics", "published_at": "2022-09-23T08:50:57+00:00" } ] posts Claim your blog
Back to totaltypescript.com
Blog · corpus.blog/blogs/totaltypescript.com/posts

totaltypescript.com

totaltypescript.com

2025

2024

2023

2022