Episoder

  • News for the week of June 16, 2025: Biome v2 features type-aware linting without TSC, Mocha and Jest both get native ESM and TS upgrades, and Grafana Lab's k6 load testing tool... also can now run native TS tests. From the community: type safety for WebGPU shaders, type narrowing map and indexed key access, and resilient import maps.

    Chapters

    (00:00) - Introduction and Personal News(05:02) - News: Biome v2 Features Type-aware Linting Without TSC(08:25) - News: Mocha 11.7.0 Adds Support for Native ESM and TypeScript(09:35) - News: Jest 30 Also Adds Native ESM and TypeScript Support(11:12) - News: Grafana k6 Celebrates 1.0 Release with TS Support(13:30) - News: WebGPU is (Finally) Coming to All Major Browsers(14:36) - News: Astro 5.9 Adds Support for Content Security Policy(15:47) - PSA: Deno's Homebrew Release is Behind Other Versions(16:34) - Community Highlight: Bridging ESM and CommonJS by Joyee Cheung(18:16) - Community Highlight: How Queues Work in TypeScript(19:00) - Community Highlight: Dr. Axel's Corner(21:11) - Community Highlight: Better Import Maps from Shopify Engineering(24:32) - Community Highlight: VoidZero Discusses Vite+ Plans(28:22) - Community Highlight: TypeScript Native Port Speeds Up Slack's CI Builds(29:09) - Community Highlight: TypeGPU Lets You Write WGPU Code in a Type-safe Way(33:21) - Community Highlight: Remembering Mikael Rogers(35:08) - Cool API: Promise.try(36:52) - Cool Read: The Dying Art We All Depend On by Raptitude(38:16) - Cool Watch: The Story of Rollup with Rich Harris
    NewsBiome v2 codename Biotype brings type-aware linting without TSC!You can check out what the noFloatingPromises rule looks like to write type-aware rulesMocha 11.7.0 is now compatible with Node’s require(ESM) & type stripping (h/t Rob Palmer)After 3 years, Jest 30 is a massive release which includes native ESM and TS supportFun fact: Christoph Nakazawa open sourced his game: https://github.com/nkzw-tech/athena-crisis Grafana k6 celebrates a 1.0 release with native support for TypeScript testsFirefox will unflag WebGPU in v141 (Firefox Release Calendar), bringing WGPU support to all major browsers for iOS, Windows, and macOS in the next year or so.Astro 5.9 brings Content Security Policy (CSP) support for more secure web app developmentPSA: Deno Homebrew version is behind because of a bug in Rust

    From the Community

    Joyee Cheung (Node TSC) talk on Bridging CommonJS and ESM in Node.jsfreeCodeCamp Blog: How Queues Work in TypeScript by YazdunDr. Axel's Corner: How TypeScript solved its global `Iterator` name clashTypeScript: checking Map keys and Array indices Resilient Import Maps - Better Theme Development and Beyond (2025) - Shopify Vite’s Creator on a Unified JavaScript Toolchain and Vite+ - The New [email protected] on Bluesky shares CI improvements by migrating to TSGOTypeGPU 0.5.9 release by Iwo Plaza Video: Iwo Plaza – The Road to Type-Safety on the GPU | RNCK #15Video: Erik's Stream: Learning WebGPU Together

    In Memoriam: Mikeal Rogers

    Via Node.js foundation:

    We’re heartbroken by the loss of Mikeal Rogers, a key figure in the Node.js ecosystem and a force behind what makes this community what it is. To help preserve his legacy, we’ve opened a GitHub repo for stories, photos, and memories: github.com/nodejs/mikeal

    💚 Thank you, Mikeal.

    Via Linux Foundation: In Memory of Mikeal Rogers: A Builder of Communities

    Cool Stuff

    Promise.try - wrap a function in a promise or execute immediately, avoiding a microtask when not neededThe Dying Art We All Depend On by David from RaptitudeThe Story of Rollup with Rich Harris (via Matt Jennings)


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

  • News for the week of June 9, 2025: Node's type stripping wrapper is released as a standalone package, VoidZero is building a super fast linter, and pnpm introduces experimental virtual store for speeding up package installs. From the community: secure your TS apps, #ROLP, and updated Exploring JS book edition for 2025.

    Chapters

    (00:00) - Introduction and Personal News(05:34) - News: Amaro, the Node.js Type Stripping Wrapper, Has 1.0 Release(06:39) - News: New Oxlint 1.0 Release is 50-100x Faster Than ESLint(08:37) - News: pnpm 10.12 Introduces Experimental Global Virtual Store(10:14) - News: TypeFire is a New Meta Programming Framework for TS(14:37) - News: Go 1.25 Promises Better GC Performance(16:01) - News: Apple Announces Safari 26 Enhancements at WWDC(18:52) - Community Highlight: Liran Tal's TypeScript Security Talk(21:16) - Community Highlight: justin, a JIT Schema Validation Library by cinny.bun.how(24:13) - Community Highlight: React Final Form Migrates to TS(26:32) - Community Highlight: Flint, Josh Goldberg's New Type-aware Linting Project(27:33) - Community Highlight: New Edition of the 'Exploring JavaScript' Book by Dr. Axel(28:23) - Community Highlight: Rule of Least Power by Jason Yu(29:34) - Cool Tool: Type Buddy Helps Translate Complex Typings(30:58) - Cool Tool: node-email-verifier Library for Verifying Emails(31:39) - Cool Listen: Bootstrapped Founder and Nathan Barry Podcasts(32:55) - Cool Listen: From Microsoft to Full-time OSS Maintainer(33:47) - Cool Listen: Alex Lichter on Vite, Rolldown, and oxc(34:21) - Cool Listen: Nic Barker's Flexbox-style Layout Library Written in C
    NewsAmaro 1.0 release (h/t Rob Palmer) – Node's type stripping wrapperOxlint 1.0 release – TypeScript/JS linter written in Rust from VoidZeropnpm 10.12 (h/t socket.dev) TypeFire - a meta programming framework for TS (h/t nxjosh)Go 1.25 promises more speed! Good news for TSGO? (Video: Go just got faster.. )Apple’s WWDC featured Safari 26 Beta improvements, including WebGPU

    From the Community

    Liran Tal - Friend or Foe? TypeScript Security Fallacies Justin: a typescript data validation library utilizing just-in-time function compilation. (h/t Charlotte / cinny.bun.how)🏁 Final Form goes to TypeScriptJosh Goldberg's If I Wrote a Linter, Part 4: SummaryYour code: powerful, but not clean. Here's why (Jason Yu)Dr. Axel announces release of ES2025 Edition for Exploring JavaScript

    Cool Stuff

    Type Buddy (h/t Seb)jesselpalmer/node-email-verifier: A Node.js module for verifying email addressesArvid Kahl's Bootstrapped Founder podcastThe Nathan Barry Show podcastWhy Use C for UI Library? | Nic Barker Ink, build CLI apps in ReactJosh Goldberg interview on Weekly Devs Brew PodcastAlex Lichter of VoidZero on ConTejas Code podcast


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

  • Mangler du episoder?

    Klikk her for å oppdatere manuelt.

  • News for the week of June 2, 2025: TSC init command gets new, modern defaults, plus new betas drop for Vite 7 and Babel 8. From the community: Learn advanced TS features in 25 mins, and improve the performance of your TS monorepos with secret arcane knowledge.

    Chapters

    (00:00) - Introduction and Personal Updates(02:26) - News: tsc --init Finally Has New Defaults(04:39) - News: Deferred Imports Syntax Will Land in TS 5.9(06:38) - News: Vitest 3.2 Brings Annotations, Better TS Support(08:21) - News: Vite 7 Beta(09:17) - News: Babel 8 Beta(10:49) - News: Storybook 9 Adds Interaction Tests, A11y Improvements(11:54) - News: TC39 Proposal Advancements(14:54) - News: IRS Uses TypeScript and React(16:50) - Community Highlight: The M.I.N.T. Principle by Sean Maxwell(22:07) - Community Highlight: Advanced TS by Web Dev Simplified(22:32) - Community Highlight: TS Monorepo Tips by Mike Hartington and Colin Hacks(24:30) - Community Highlight: Learn How Signals Work in TypeScript by Jon Kuperman(25:32) - Community Highlight: Your Feedback!(27:07) - Cool Stuff: Reverse-Engineering Linear's Sync Engine(28:09) - Cool Stuff: Chrome Performance Profiler Gets a Facelift
    Newstsc --init gets new defaults (h/t Rob Palmer)TypeScript 5.9 gets import deferred (h/t Rob Palmer)Vitest 3.2 is out!Vite 7 beta changelog entryAnnouncing Babel 8 Beta Storybook 9 Bluesky breakdown threadTC39 proposals advanceThe IRS Tax Filing Software TurboTax Is Trying to Kill Just Got Open Sourced

    From the Community

    The MINT Principle – When to use object-oriented programming in TypeScript (h/t Reddit)Learn Advanced TypeScript In 25 Minutes (infer, extends, ternaries) Mike Hartington gave a talk on TypeScript performanceLive types in a TypeScript monorepo (Colin Hacks)Learn Signals by reading TypeScript (Jon Kuperman)

    Cool Stuff

    Reverse-engineering Linear's sync engineChrome personal profiler changes (Paul Irish)


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

  • Jason Yu (ycmjason.codes) joins us to share an open source tool he created to help teams migrate their legacy TSConfig compiler options to modern-day options painlessly and progressively. Learn about his experience implementing strict options on big teams, how it inspired his new tool, and how you can take advantage of it right now!

    Chapters

    (00:00) - Meet Jason Yu(03:27) - Challenges of Migrating Legacy TypeScript(05:44) - What is ts-migrating?(07:01) - How Does ts-migrating Help Migrate TSConfig?(09:05) - What Does the ts-migrating CLI Do?(10:02) - How Do You Migrate Incrementally?(11:16) - How Do You Get Started with ts-migrating?(12:06) - Tackling the Migration in Small Chunks(13:12) - How Does This Compare to Using Folder-based TSConfig?(14:12) - What About ts-expect-error and ts-ignore Directives?(16:25) - What About Multiple TSConfigs?(17:34) - Are There Any Unsupported Compiler Options?(19:28) - How Do You Build a TypeScript LSP Plugin?(22:18) - How Will This Work with TS 7 (Go Native Port)?(23:57) - Advice for Teams Migrating TSConfig(25:52) - Jason's Favorite Coding Principles(32:42) - Where to Follow Jason Online
    Links

    Jason’s Links: https://ycmjason.codes Migrate your TSConfig incrementally: https://github.com/ycmjason/ts-migrating Blog / Video: 7 Modern Use Cases of IIFE ts-migrating Inspiration: https://github.com/allegro/typescript-strict-pluginMS Docs: Writing a Language Service Plugin

    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

  • News for the week of May 26, 2025: Angular's 20th release brings DX improvements, Remix replaced by React Router receives reincarnation, and how a lone volunteer brings the much-anticipated Temporal API to Firefox.

    Chapters

    (00:00) - Personal News and Updates(04:46) - News: Angular 20 is Out and It's Boring (But in a Good Way)(08:39) - News: Remix Receives Revival(10:03) - News: Vite with Rolldown is in Preview(11:32) - News: What's New with Astro in May 2025(12:05) - News: Temporal API Finally Hits Browsers with Firefox 139(16:52) - PSA: Take the StackOverflow 2025 Developer Survey!(17:40) - Community Highlight: Josh Goldberg's Types Beyond TypeScript Talk(18:27) - Community Highlight: sirhamy on the Cost of Throwing Errors in JS/TS(19:16) - Community Library Watch: ts-migrating for Migrating Your TSConfig Incrementally(20:26) - Community Library Watch: jsonv-ts, a JSON Schema Validator(21:08) - Community Library Watch: tsargparse, a Type-safe CLI Parser(21:28) - Community Highlight: TypeScripting the Technical Interview by Richard Tower(22:02) - Community Highlight: CanIUse... for Angular by angular.courses(22:25) - Community Highlight: Type-safe Internationalization by Web Dev Simplified(23:13) - Community Highlight: Deno Might Have the Features You're Missing(23:41) - Community Highlight: skeary.me Wrote a Programming Language... in TypeScript Types(24:30) - Discuss: Competition Between Node.js, Deno, and Bun(29:51) - Cool Links: David Macaulay is a National Treasure(32:05) - Cool Links: Progressive JSON by Dan Abramov(33:24) - Cool Stuff: Curated List of Data Grids by Ian Langworth(33:54) - Cool Stuff: Hack Into React Internals with bippy(34:43) - Cool Stuff: Wookash Interview with Inigo Quilez(35:29) - Cool Stuff: Building a Software Rasterizer with Sebastian Lague
    NewsAngular 20 is out! (And it's boring)Remix gets revivedAnnouncing Rolldown-ViteWhat’s New in Astro – May 2025Shipping Temporal (Matt Pocock video, Wes Bos tweet)PSA: Stack Overflow Survey 2025 is Open

    From the Community

    Josh Goldberg gives Types Beyond TypeScript talk at JS Nation 2025Hamilton teaches us about errors as values and how they're 335x faster than throwing new errors (sirhamy)Typescripting the technical interview (Richard Towers)Angular CanIUse How To Handle Internationalization Like A Senior Dev (Web Dev Simplified)Deno Might Have the Exact Tools You’re Missing… TLTSS: a language written in TS types (by skeary.me)Library watch: Jason Yu’s ts-migrating tool helps teams migrate their codebase to modern TSConfig settings incrementally!Library watch: jsonv-ts validates and produces clean JSON schemas with a Zod-like API (h/t Reddit)Library watch: tsargparse is a simple type-safe CLI args parser (h/t Reddit)Discuss: Are Deno, Bun, and Node.js competing? (via James Snell)

    Cool Stuff

    KamranThe Way Things Work (1994) on Classic ReloadDavid Macauley’s book, Motel of the Mysteries (1979)ErikDan Abramov - Progressive JSONCurated List of JS Grids by Ian LangworthBippy - Hack into React: Wookash: Painting with Math | Inigo Quilez Coding Adventure: Software Rasterizer with Sebastian Lague


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • News for the week of May 19, 2025: Try out the new TypeScript Go native port, Zod 4 is out, and no, Deno is not dead.

    Chapters

    (00:00) - Introduction and Personal News(05:12) - News: TypeScript Native is in Preview!(10:12) - News: Anders' Talk About TS Native at MS Build(12:58) - News: Zod 4 is Officially Released(15:51) - News: Reports of Deno's Demise Are Greatly Exaggerated(17:23) - News: Importing JSON Across Major Browsers(20:13) - News: Experimental node.config.json Support(24:43) - Community Highlight: A Brief History of JavaScript by Deno.land(25:40) - Community Highlight: tsdown Now Supports Transpile-only Unbundle Mode(27:21) - Community Highlight: Vite's Rolldown Preview is Here(28:19) - Community Highlight: Go Attend Jake Bailey's Gophercon TS Talk(28:41) - Community Highlight: super-utils-plus, a Modern Lodash Alternative That's TypeScript-first(29:17) - Community Highlight: tsc.run, a TypeScript Serverless Framework(29:58) - Community Highlight: How to Create a TS Library That Runs Everywhere in 2025(30:45) - Community Highlight: TypeScript.jobs Board is Looking for Feedback(31:28) - Cool Stuff: Markdown Presentation Frameworks(33:21) - Cool Stuff: Wookash Interview with Andreas Kling(34:31) - Cool Stuff: Computers & Prime Numbers by Purple Mind(34:51) - Cool Stuff: Playwright Testing Talk from MS Build(35:15) - Cool Stuff: Reporting on AI's Energy Usage(35:51) - Cool Stuff: Six Ways to Make Your Electron App Faster(36:56) - Fun Stuff: My New Favorite Hobby is Watching Microsoft Employees Being Slowly Driven Insane by AI Copilot
    LinksMicrosoft Announces TypeScript Native PreviewsZod 4 is officially released 🎉Reports of Denos Demise are greatly exaggeratedYou can now import json files across browsers (h/t stefanjudis.com)Experimental node.config.json support in Node 24.1.0 minor release (h/t aduh95)Deno’s brief history of JavaScriptTsdown now has unbundle support (h/t sxzz.dev)Vite now has a Rolldown preview tooMS Build: Anders gave a talk on TypeScript native portJake Bailey built a tool called ts-to-goJake Bailey will also be speaking about TS Go at Gopherconsuper-utils-plus: modern lodash alternative that's TypeScript-first by Dhaxor (Gain John)How To Create a Simple TypeScript Library That Runs Everywhere (2025) Tsc.run – A TypeScript-first serverless framework (via Reddit)Looking for a TS job? The TypeScript.jobs board folks are looking for feedback (via Reddit)MIT Technology Review has an absolute banger of a series on AI energy usageImprove Electron app performance by Amila over at palette.dev, the maintainer of electron-react-boilerplateReddit: My new favorite hobby is watching Microsoft employees being slowly driven insane by AI copilot presenterm, a Markdown presentation tool that runs in your terminalVia Daniel Raniz: https://sli.dev, another Markdown presentation toolMS Build: Advanced Playwright Debugging and Test Resilience | DEM499 MS Build: How Microsoft Developers Use AI in Real-World Coding | BRK103 Can You Build a Web Browser? | Andreas Kling How Computers Generate Massive Primes In SecondsGoogle Slides Code Highlighter (from Roman Nurik)


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • News for the week of May 12, 2025: Microsoft layoffs impact TypeScript team, and Deno explains the radio silence on Fresh 2.0.

    Chapters

    (00:00) - Personal News(06:25) - Correction: Node 24's Security Model(07:22) - News: Microsoft Lay-offs Impacting TypeScript Team(11:32) - News: Deno Posts an Update on Fresh 2.0(13:27) - News: TSGo Gets LSP Concurrency(16:19) - Community Highlights: String Split Typing Quirks by kramer.run(18:21) - Community Highlights: Shawn Wildermuth on "Just Enough TypeScript"(18:57) - Community Highlights: Reminder for Migrating TS Import Paths in Node 24(20:24) - Community Highlights: Reddit on What Was the Hardest Thing to Learn About TS?(23:43) - Community Highlights: Increasing Memory Limit for eslint and TS Server(24:02) - Community Highlights: Type Assertions: Trust Me Bro by chrisk-7777(24:36) - Community Highlights: TypedRocks on the Secret 'this' Parameter(26:58) - Cool Stuff: Typing your dotenv variables(27:41) - Cool Stuff: Escape the City(28:54) - Cool Stuff: Pirate Sea Shanties Meet Pop Rock(30:07) - Cool Stuff: Open 5e for D&D Nerds(31:17) - Cool Stuff: Run JavaScript in Godot
    LinksNews: Microsoft LayoffsNews: Deno Fresh – An Update on 2.0 (h/t deno.land)Let Ron Buckton know how much you appreciate his workBluesky: String split quirk (h/t kramer.run)Video: Oldie but a goodie (2023), “just enough TS" by Shawn WildermuthTip: Don't forget about TS import migration for Node 24 (h/t jakob.jingleheimer.dev)Reddit Discussion: what was the hardest part of learning TypeScript?Reddit tip: increasing memory limit for eslint and TS serverBlog: The TSConfig Cheat Sheet (Matt Pocock)Blog: A Guide to tsconfig.json (Dr. Axel / 2ality)Blog: Type Assertions and the as keyword (chrisk-7777)Video: The Secret THIS Parameter: TypeScript’s overlooked Superpower Explained! (Typed Rocks)Video: 6 TypeScript tips to turn you into a WIZARD (Matt Pocock)Tip: strongly type process.env so you can enforce your dotenv files (h/t aaronmcadam.com)Cool stuff: Escape the City outdoor gameCool stuff: Sail North – pirate sea shanties meets pop/rockCool stuff: Open5e for D&D nerdsCool stuff: Add TypeScript/JavaScript Support for Godot 4


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • In this week's deep dive, we cover everything TypeScript developers need to know about the latest Node 24 release, including examples of each new language feature. We've even put together a code snippet repo you can check out!

    Chapters

    (00:00) - Introduction to Node 24 and TypeScript Support(02:49) - Type Stripping and Experimental Transform Types(05:53) - Stable Permission Flag Security Model(09:38) - V8 13.6 Brings New Language Features(10:04) - API: CPU Hinting Micro-waits with Atomics.pause(12:35) - API: Reduce Memory Using Float16Array(14:56) - API: Format Time Durations with Intl.DurationFormat(16:33) - API: Explicit Resource Management with using(17:07) - API: What's Really an Error with Error.isError(18:48) - API: Parse Routes with URLPattern API(20:51) - API: Sanitize Input with RegExp.escape(21:39) - API: RegExp Modifiers in Sub-expressions(23:05) - API: RegExp Duplicate Named Capture Groups(24:07) - PSA: Node 24 Typings Are Still a WIP(25:14) - Deprecations and Removals(29:17) - npm 11: Changes to Lifecycle Scripts(30:41) - Undici 7 Brings HTTP Performance Enhancements(31:11) - Test Runner Now Waits for Sub-tests(31:45) - next-10 and the Future of Node.js
    LinksRepo: Node 24 Examples in TypeScript (by Kamran)Node 24 Release BlogNode 24 typings PRTypeScript 5.8 Release NotesDocs: Typescript supportDocs: PermissionsRob Palmer's quick Bluesky thread on Node 24Multithreading in Node.js: Using Atomics for Safe Shared Memory Operations (Pavel Romanov)Everything You Need to Know About Node.js Type Stripping (Marco Ippolito)tc39/proposal-regexp-modifierstc39/proposal-duplicate-named-capturing-groups next-10 technical prioritiesnext-10 security model


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • News for the week of May 5, 2025: Node 24 officially brings TS support to the masses, Parcel adds RSC support, and a TC39 proposal gets replaced.

    Chapters

    (00:00) - Introduction(04:07) - News: Node 24 Release Highlights(08:09) - News: What's New in TSGo?(09:05) - News: TC39 Records and Tuples Proposal Has Been Withdrawn(11:45) - News: Parcel Bundler Introduces Support for RSC(13:15) - Community Highlight: Why Was Node 24 Delayed?(15:52) - Community Highlight: Type-safe Theming in Tailwind CSS(16:52) - Community Highlight: TypeScript Gotchas via Reddit(20:48) - Community Highlight: Trick for Error Handling in TypeScript(22:46) - Cool Stuff: V8 Compile Hints(25:40) - Cool Stuff: Bare, a Minimal JavaScript Runtime(26:16) - Cool Stuff: AwesomeDev's Node 24 Rundown(26:27) - Cool Stuff: Build System in C for C(27:01) - Cool Stuff: Typecraft's Vim Challenges
    LinksEvent: IGDATC Game.wavArticle: An introduction to Node.js 24 from Red HatVideo: Awesome on Node.js 24Repo: Records and Tuples Proposal replaced with tc39/proposal-compositesVideo: Arrays, objects... now ‘composites’? Docs: Parcel 2.14 introduces React Server Components Bluesky: Interesting thread on why Node 24 was delayedArticle: Type-Safe Theming in Tailwind CSS Using CSS Variables and TypeScriptRedditors share TypeScript GotchasArticle: Giving V8 a Heads-Up: Faster JavaScript Startup with Explicit Compile HintsVideo: Jason Yu shares his way of doing try..catch in TSVideo: Build System For C in C Learn: Typecraft's Vim Challenges


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • News for the week of April 28, 2025: Deno 2.3 brings some nice quality-of-life improvements, plus void(0) has released a new all-in-one bundler for your TypeScript libraries.

    Chapters

    (00:00) - Introduction(04:51) - News: This Week in TypeScript Go(05:47) - News: Deno 2.3 Released(08:36) - News: tsdown is a TypeScript Bundler for Library Authors(11:29) - News: Astro 5.7 Release(13:04) - Community Highlights: "Macros" in TypeScript by cinny.bun.how(15:40) - Community Highlights: Dan Abramov's AMA on BlueSky(16:02) - Community Highlights: Josh Goldberg's Series on "If I Wrote a Linter..."(18:03) - Community Highlights: Plaid Migrated 100 Services to Deno Deploy(19:52) - Community Highlight: Pinterest Migrated 3.7MM Lines of Flow Code to TypeScript(21:59) - Dr. Axel's Corner: Converting Values to Strings(23:14) - Community Highlights: Build Your Own Build Tools with Immaculata(24:52) - Community Highlights: Type-safe Route Management in Vue(25:56) - Cool Stuff: Hate git? Try Sapling Instead(27:45) - Cool Stuff: Nerd Out with HVAC Ceiling Cassettes(30:00) - Cool Stuff: Build Custom Fonts with FontForge(30:28) - Cool Stuff: Quantum Computing Explainer by 3Blue1Brown(31:05) - Cool Stuff: "Ed", an Early Text Editor(31:25) - Cool Stuff: 4000+ Icons for Your Game at Game-Icons.net
    LinksWebsite: Minnestar eventsWebsite: IGDATCTool: Deno 2.3Tool: tsdownTool: Astro 5.7Bsky thread: Macros in TypeScript (@cinny.bun.how)Bsky thread: Dan Abramov AMAArticle: If I wrote a linter, part 1 (Joshua Goldberg)Article: Plaid migration to Deno DeployArticle: Pinterest Flow to TS migrationArticle: Converting values to strings (2ality)Library: ImmaculataLibrary: vue-route-queryTool: Sapling SCMArticle: Ductless Ceiling CassettesVideo: Quantum computing explainer (3blue1brown)Video: ed text editor (Kay Lack)Website: Game Icons


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • Erik shares how you can build games for the web with TypeScript and the Excalibur.js game engine. What's involved? What are some of the primitives you need to learn? What tools are there to make assets? And how do your webdev skills translate? All this and more in today's deep dive episode!

    Chapters

    (00:00) - Introduction to Excalibur.js(01:13) - What is Excalibur.js?(02:28) - Game Development Basics with Excalibur(05:18) - Exploring Actors and Scenes in Excalibur(06:38) - Diverse Game Types with Excalibur(08:01) - Physics in Excalibur(09:52) - Input Handling in Excalibur(11:09) - Asset Management in Excalibur(12:13) - Audio Management with Web Audio API(14:57) - Integrations with Art and Level Design Tools(17:07) - Hot Reloading and Game State Management(19:15) - Loading and Performance Optimizations(22:15) - Custom Shader Support in Excalibur(26:30) - Excalibur's Origin Story(29:03) - Why Is It Called Excalibur?(30:00) - Building a Friendly Game Development Community(31:33) - Getting Started with Excalibur(33:42) - Publishing Games with Excalibur(35:42) - Who is Excalibur Designed For?(37:41) - Advice on Getting Into Game Development(40:51) - The Future of Excalibur(47:35) - Secrets of the Handbook: Declaration Merging
    LinksExcalibird TutorialExcalibur.js DocsExcalibur.js Community DiscordExcalibur.js ShowcaseFollow Excalibur on BlueSky


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • News for the week of April 21, 2025: TSGo gets autocomplete and JSX support, pnpm adds JSR support, and remember to migrate off Node 18!

    (00:00) - Introduction and Personal Updates(04:55) - News for the Week of April 21, 2025(06:26) - News: TSGo Gets JSX and Autocomplete Support(08:36) - News: pnpm Gets JSR Package Support(10:00) - News: Juno Adds Serverless TypeScript Functions(11:23) - News: Storybook 9 Beta is Released(13:23) - News: Node 18 EOL on April 30, 2025(14:11) - Community Highlight: Joist ORM by Stephen Haberman(15:51) - Community Highlight: TypeScript Interview Questions by L Javier Tovar(18:08) - Community Highlight: Quad Trees with TypeScript by Hypersphere(20:11) - Cool Stuff: GitHub's Project Padawan(22:56) - Cool Stuff: Dan Abramov on React Server Components(24:16) - Cool Stuff: Track WebGL Memory Usage(25:25) - Cool Stuff: GameStats by Trezzy
    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • In this episode, Erik and Kamran have a candid discussion about how the podcast started, how it went, and what the plans are for the future.


    Chapters

    (00:00) Introduction(01:18) Is TypeScript.fm Done?(01:59) Erik's Reflection(03:05) Kamran's Reflection(03:48) What's the Goal of the Podcast?(06:46) What Do We Want to Focus On?(12:10) Should We Build a Dedicated Community Around the Podcast?(13:58) How Do We Feel About the Time Spent Right Now?(18:05) Should We Split Episodes Apart?(21:59) What Should Change With the Record and Edit Workflow?(23:38) Should We Start Doing Video?(26:08) What Should the News Cover?(27:23) Should We Send a Newsletter?(29:28) How Are the Numbers Doing So Far?(36:26) How Do We Encourage Feedback or Engagement?(37:34) What Should We Stop Doing?(38:49) How Do We Want to Handle Guests?(40:28) How Do We Make It Easier to Aggregate News?(43:23) Should We Change Up the Format?(49:47) How Do We Want to Handle Mid-rolls?(51:03) How Do We Improve Our Show Notes and Accessibility?(52:34) Should We Update the Logo and Cover Art?(53:22) What Has the Community Reception Been?(56:55) Tell Us What You Think!


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • News for the week of April 14, 2025: TC39 Enums in JS Proposal moves to Stage 1, plus Next.js gets some TS LSP plugin perf/stability improvements.

    Chapters

    (00:00) - Introduction(02:07) - News for Week of April 14(03:20) - News: SquiggleConf 2025(03:40) - News: TC39 Enums in JS Proposal Moves to Stage 1(04:20) - News: Deno 2.2.10(04:48) - News: Bun 1.2.10(05:08) - News: Next.js 15.3(07:31) - Community Highlight: Reddit Discussion on the Enums in JS Proposal(10:25) - An Abrupt Goodbye!

    Links

    SquiggleConfTC39 Enums in JS ProposalDeno 2.2.10Bun 1.2.10Next.js 15.3Reddit Discussion on the Enums in JS Proposal


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • This week on the pod, we talk to Dimitri Mitropoulos about building DOOM in the TypeScript type system. We walk through all the nitty gritty and explore this truly amazing engineering feat! We touch on things that Dimitri learned and discovered along the way, and how you might be surprised what you can accomplish by trying! In the news, Zod 4 Beta drops with awesome new features.


    Chapters

    (00:00) - Intro(00:37) - SquiggleConf 2025(01:00) - Personal News(04:28) - Dimitri's Background and Michigan TypeScript(08:35) - JSON Parser in TypeScript Types(09:08) - Where do you start with DOOM in Types?(10:01) - "DOOM" Complete(13:57) - How do you run DOOM in TS?(17:36) - Debugging an Emulator in TS Types(19:22) - How does DOOM work?(20:45) - Using Web Assembly(22:49) - Understanding WebAssembly and TypeScript Integration(24:59) - The Concept of Abstraction in Programming(27:02) - Challenges in Implementing WebAssembly from the Spec(28:59) - Ambiguities in Specifications and Their Impact(30:40) - Debugging Techniques and Error Handling(32:24) - Innovative Use of Overflow in Game Development(35:40) - Insights Gained from TypeScript During the Project(38:24) - The Complexity of TypeScript Types(43:08) - Time Travel Debugging and Memory Management(45:00) - The Most Challenging Aspects of the Project(48:32) - Reactions to DOOM(53:10) - The Dawn of TypeScript Go(01:02:14) - Lessons Learned and Future Directions(01:08:37) - Dimitri Says Goodbye!(01:09:50) - News for the Week of April 7th(01:14:42) - Community Posts(01:17:39) - Secret of the Handbook(01:19:07) - Cool Stuff from Erik(01:19:51) - Debugging and Performance Optimization Techniques
    Dimitri's LinksSquiggleConf 2025Michigan TypeScriptTypeScript Types Can Run DoomAnders TS GO Interview Final Boss Challenge TypeScript Types WASM Runtime

    News Links

    Zod 4 BetaMatt Pocock's VideoDan Abramov - RSCs or Maybe Nothttps://overreacted.io/react-for-two-computers/ https://youtu.be/ozI4V_29fj4 Axel’s CornerTesting Types https://2ality.com/2025/04/testing-types-typescript.html https://bsky.app/profile/dr-axel.de/post/3lmmwp4ovek2q Deploying TypeScript (timely!)https://2ality.com/2025/04/deploying-typescript-present-future.htmlhttps://www.pipe0.com/blog/never-in-typescript https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types Kamranhttps://bun.sh/blog/debugging-memory-leaksAnimate UI: copy paste or installable components built with TS, React, and Tailwind using Motion.ErikVGM ConShader Programming TalkSebastian Lague - Simulated CPUhttps://youtu.be/HGkuRp5HfH8?si=9iNm0Ad1z4T4AePj Sebastian Lague - Rendering Texthttps://youtu.be/SO83KQuuZvg?si=uzPojhUqBvV35q7F


    Excalibur Games

    Sum Monsters Sweep Stacks Tiny Tactics Jelly Jumper


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host Dimitri Mitropoulos - Guest
  • This week on the pod, we were very busy with travel, cons, and sickness! We have a news grab bag episode talking about the JS enums proposal, Deno v. Oracle, Parcel+RSCs, Firefox vulnerabilities and more!

    Also Please email us your feedback for your retro episode ([email protected])

    00:00 Intro
    00:50 VGM Con
    02:07 IGDATC Talk Wednesday April 9th
    02:41 Toddler Zone
    03:28 Exciting Arizona Travels
    05:53 (Almost) Missing Flights
    07:33 Sponsored by Excalibur.js
    08:44 JavaScript Enums Proposal
    10:06 Deno v. Oracle

    Deno Blog PostJavaScript.tm Petition

    12:55 Parcel 2.14 and React Server Components
    14:01 Build Browser Extensions with Parcel
    14:18 NPM Ecosystem Updates

    Jake Bailey's PostKat Marchán's Fix

    15:23 Mozilla JavaScript Sandbox Vulnerability

    Bleeping ComputerCVE Details from Mozilla

    16:51 Community: ArkType Deep Dive
    17:31 Community: JavaScript & TypeScript in my Database

    Typed Rocks VideoPLV8 Extension

    20:00 Kamran's Cool Stuff: Data Visualization with TypeScript
    20:40 Erik's Cool Stuff

    Game: Dark Diety 2

    21:27 Sprite Sheet Packing with Potpack
    23:53 De-Google Your Life
    25:46 HyperLight: A Lightweight VM for WASM

    MS HyperLight Announcement PostHyperLight Main RepoHyperLight WASM Repo

    30:26 Post-roll

  • This week on the pod, we talk all about the Bun runtime funtimes! This is a powerful new player in the JavaScript and TypeScript runtime space focusing on DX, speed, and pushing the state of the art! We dive into the details and offer some of our thoughts around when to use it at the moment. In other news we avoid phone scams and talk fun new TypeScript libraries.

    Also Please email us your feedback for your retro episode (feedback at typescript.fm)

    Personal News

    00:36 Welcome01:33 Kamran & Erik IRLMinnebarVGM Con02:39 Erik @ C Fundamentals by Frontend MastersFFM02:55 Vibe Coding03:43 LLMs "what are they good for?!"04:31 Kamran's New Course06:16 Kamran Review book on Time Freedom07:31 Scams and Phone CallsFTC Warning about fake Jury Duty


    (09:26) News for the Week of March 17, 2025

    09:34 Next.js 9.1 CVEPR with fixEd's Video on this @ Low Level Learning10:43 Deno 2.2.511:13 Deno Patch Functionality11:59 Deno FFI Docs Update13:04 PandaCI: A New CI/CD Tool16:17 HKT Core


    (17:33) Community Highlights

    17:33 TS Go GitHub Discussion on Compiler API18:24 Deno Compile Vite20:07 Blog Post by Andy Jiang about Deno+OTel22:35 Cory House on Implementing Immutability in TypeScript23:16 RGSTRY for managing decorator metadata24:19 Corepack removal from Node, Sarah has a good overview


    Bun Deep Dive

    27:22 Introduction to Bun RuntimeBaby Got Back by Jonathan Coulton 28:01 What is Bun28:23 Bun vs Node.js and Dino29:25 Features and Capabilities of Bun30:40 Bun Performance31:23 C Tangent32:12 Bun DX35:20 Standalone Executable35:53 Use Cases for Bun38:00 Cautions and Considerations41:38 Good Use Cases46:24 Bun CommunityThis OP asked about Bun and ended up moving to Deno actuallyMemory Leaks Reddit threads48:09 Conclusions

    Outro

    52:00 Cool Stuff This Week58:11 Give Us Feedback (feedback at typescript.fm)


    Other Links

    Profiling TypeScript in VSCodeCobol Based UIhttps://github.com/oven-sh/awesome-bun Chess in TypeScript types Developer Speak


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • In this episode, we are joined by special guest Josh Goldberg to teach us about getting started with TypeScript from scratch. If you're new to TS, this is a great introduction! And if you've been using TS for a long time, you can explain to your friends where they should start to make their experience smoother. In the news, Nx gets support for project references and we curate some of the best TSGo content.


    (00:36) Personal News

    IRL: Excalibur.js team will be at VGM Con (April 11-13, Minneapolis, MN)IRL: Erik is speaking at NDC Oslo (May 19-23)

    (04:28) Introducing Josh Goldberg

    (07:10) - Josh's Work as a Full-time Open Sourcer(09:05) - Getting Started with TypeScriptStart with the TypeScript Handbook (it's free!)Then, play with TypeScript in the playground(10:57) - Pain Points for New TypeScript Developers(12:41) - Benefits of TypeScript for Experienced Developers(14:43) - Getting Started with TypeScript(17:57) - CTA - create-typescript-appv2 rewrite spawned Bingo, dev tooling automation blocks(20:54) - Use Cases For Create TypeScript App(26:58) - CTA Plans for the Future(29:10) - Learning Resources for TypeScriptMatt Pocock (Total TypeScript)Cory House (Getting Started with TypeScript)Basarat (TypeScript Deep Dive)Code challenge: Advent of TSCode challenge: Advent of CodeCode challenge: Type Challenges(32:17) - And of course, Josh's Book: Learning TypeScript!Learn the why and theoryBlog and articlesBuy the book!(33:30) - Favorite Language Feature: Discriminated Unions(37:40) - Favorite Language Feature: Branded Types(38:58) - Creating TypeScript ESLint Rules(40:34) - Key Takeaways - Fun and Cool Stuff Happening!SquiggleConf 2025 CFP is open!(42:29) - Future of TypeScript and Linting InnovationsWrite your own TS linter

    (45:02) Where to Find Josh

    WebsiteFollow on BlueSky @JoshuaKGoldbergSponsor on GitHubAttend SquiggleConf 2025

    (46:55) News for the Week of March 10, 2025

    TSGo, but we already covered that (TS-a-Go-Go, Ep 9)Deno 2.2.4 update adds enhancements to OpenTelemetry (OTel) supportNx 20.5 adds TS project reference supportCory House releases a new TypeScript course on DometrainReact Router 7.3 minor releaseExperimental support for client contextsExperimental support for route middleware(49:25) - Community UpdatesDr. Axel's Corner - Dive deeper with this TSGO ExplainerSxzz (Kevin from Vite) created a TSGo playground with WASMTSGo community contentMiTS interviewSyntax interviewMatt Pocock interviewTheo's video

    (54:55) Cool Stuff

    Learn Zod to Trust your Data and your Types (h/t cassidoo)50 Years of Travel Tips by Kevin Kelly"Your enjoyment of a trip will be inversely related to the weight of your luggage""Crash a wedding. You are not a nuisance; you are the celebrity guest!"TypeScript ESlint: Getting Started DocsEverhood Game (Steam | Add to your Backlog)


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host Josh Goldberg 💖 - Guest
  • The Internet blows up as TypeScript reaches its next Pokemon evolution, and Kamran and Erik scramble to create an episode to pick up the pieces and make sense of it. In other news, TikTok announces Lynx, Angular gets some fetch upgrades, and Josh Goldberg releases v2 of create-typescript-app.


    Week of March 3, 2025

    (07:09) - Big News: TypeScript Is Getting 10X Faster(07:48) - Big-ish News: Lynx Announced, the React Native Killer?(11:46) - News: Angular 19.2 Released(12:53) - News: Corepack Voted to Be Taken Out of Nodejs Core(13:35) - News: traits-ts Library Released(14:23) - Community Highlight: Dr. Axel's Corner2ality: My TS Sales Pitch2ality: Unions and intersections of object types2ality: Gist for createEnum helper(17:50) - Community Highlight: Build TypeScript-first BlueSky Bots and Feeds(18:27) - Community Highlight: JavaScript Fatigue Strikes Back(19:06) - Community Highlight: Josh Goldberg Releases v2 of create-typescript-app(19:50) - Community Highlight: Alex Teaches Us About Cosine Similarity in TypeScriptPlus: 3Blue1Brown explainer video about vector embeddings

    Deep Dive: TypeScript is Being Ported to Go

    (22:04) - Deep Dive: TypeScript Is Being Ported to Go(23:58) - Deep Dive: Ports vs. Rewrites(24:50) - Deep Dive: Why Go?(25:54) - Deep Dive: Why Not Rust? Anders Explains(28:37) - Deep Dive: Why Not C#?(30:20) - Deep Dive: Go's Developer Experience(31:27) - Deep Dive: Running Concurrent Type Checking(32:54) - Deep Dive: 10X Is Just the Start(33:26) - Deep Dive: What's the Roadmap?(35:06) - Deep Dive: Impact on Ecosystem(43:32) - Deep Dive: Go Use It... in GoKevin Deng (sxzz) from the Vite team is maintaining a releases repository(45:20) - Deep Dive: What's Not Supported Yet(46:08) - Deep Dive: Props to the Team

    Other Links

    Habitica, a habit trackerrspack, a Rust port of webpack(47:34) - Secrets of the Handb--Actually, Just Go Build tsgo(47:48) - Cool Stuff: acorn-typescript is Now An Actively Maintained Fork(48:37) - Cool Stuff: Mentoss, a New Alternative to Nock and MSW(50:29) - Cool Stuff: Plane is the OSS JIRA-killer?(51:11) - Funny Stuff: Boss Refuses to Use TypeScript, What's the Next Best Thing?


    Sponsored by Excalibur.js
    Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.

    Music
    Seahorse Dreams by Kubbi (Spotify)

    Creators & Guests

    Erik Onarheim - Host Kamran Ayub - Host
  • This week Kamran dives into some nuances with using React with TypeScript while Erik plays the React fool and coins the word "schbooleans" (yep). In the news, erasableSyntaxOnly gets shipped, some new minor releases in the ecosystem, and oh, TypeScript types can run DOOM. Yes, TS is a real language now.

    Erik's News

    Personal Blog Post: The Best Worst Year Happy New Year Excalibur! Excalibur 2024 Community Reel Erik didn't finish the flappy bird vid or lighting feature in time, consolation prizeFlappy Bird ArticleExcalibur Lighting PRs: Pipeline & PoC


    Week of February 24, 2025

    (04:16) - News: TypeScript 5.8 Releaseduserland-codemods for transforming import extensions to ".ts"(06:32) - News: Bun 1.2.4 Released(08:01) - News: Next.js 15.2 Released(09:29) - News: Astro 5.4 Released(09:49) - News: React Router 7.2 Released(10:25) - News: ArkType 2.1 Released(11:23) - News: Mozilla's Firefox Privacy Policy Rug-pull(14:32) - News: Warp Terminal is Now Available on Windows(15:55) - Community Highlights: TypeScript Types Can Run DOOM (!?)Write-up by Simon WillisonWrite-up on Socket.devMark Seeman's series (and course) on type-driven development (F#)(20:24) - Community Highlights: Dr. Axel's Cornerfree-typescript-resources GistTesting Types and asserttt(22:19) - Community Highlights: Safety-Web ESLint Plugin(23:27) - Community Highlights: Pattern for Strongly Typed Event Emitters(24:20) - Community Highlights: Websocks, a Typed WebSockets Router for Node

    Deep Dive: TypeScript and React Nuances

    (26:17) - Deep Dive: TypeScript and React(27:26) - Deep Dive: What You Need to Know FirstUsing Vite react-ts template(28:27) - Deep Dive: TSConfig Options for React and TS(32:55) - Deep Dive: How JSX/TSX Works Under the HoodDeno has native support for TSX/JSXAnd so does Bun(35:03) - Deep Dive: TSX in Different Runtimes(35:39) - Deep Dive: Typing Components and PropsExample of leaning on inference(38:12) - Deep Dive: Typing the Children Prop(40:13) - Deep Dive: Where Should Typings Go?(41:05) - Deep Dive: Should I Use React Class Components?(43:21) - Deep Dive: Typing Events and Callbacks(46:59) - Deep Dive: Typing Data and APIs(48:41) - Deep Dive: Typing Form Actions and "Schbooleans"(51:19) - Deep Dive: Typing State and Set-state Actions(54:11) - Deep Dive: Typing Contexts(54:49) - Deep Dive: Typing Refs and DOM Attributes(58:19) - Deep Dive: Sharing Typed Components in Libraries(59:56) - Deep Dive: Takeaways / tl;dlResource: React and TS CheatsheetsResource: Using React with TypeScript guided code lab on Pluralsight (requires subscription)

    Secrets of the Handbook

    (01:01:30) - Secrets of the Handbook: Our Favorite Utility Types

    Links

    (01:04:13) - Cool Stuff: Kamran's been playing Avowed and Pillars of Eternity(01:05:25) - Cool Stuff: Erik's spreads his stink with