TypeScript.fm - The Friendly Show for TypeScript Developers

TypeScript.fm - The Friendly Show for TypeScript Developers

By Kamran Ayub and Erik OnarheimNewsTechnologyTech News
Download on the App Store

TypeScript.fm - The Friendly Show for TypeScript Developers episodes

  • WebStorm Supports TS Go, V8 Stringifies JSON 2X Faster, and a TypeScript AI Conference | News | Ep 30

    News of the week of August 4, 2025: WebStorm 2025.2 adds support for TypeScript Go language server (preview), V8 made JSON.stringify supa-supa-fast, and there's a new TypeScript AI conference on the block. From the community: recommended tools and libraries for TS developers, how to prevent ReDOS attacks, and an interview discussing how the JavaScript language evolves.

    Chapters

    • (00:00) - Welcome to the Show
  • (04:52) - News: Erik's High Performance JavaScript Talk is OUT!
  • (06:02) - News: WebStorm 2025.2 Features TypeScript Go Language Server Support
  • (06:57) - News: V8 Improved JSON Stringify Perf by More than 2X
  • (10:54) - News: Bun 1.2.20 Includes Type-level Assertions and TS 5.9 Support
  • (12:24) - News: Mastra is Hosting a TypeScript AI Conference
  • (19:58) - Community Highlight: How I Built CSS' light-dark() Function in TypeScript by Robert Hameetman
  • (21:32) - Community Highlight: Type-Aware Linting with Oxlint
  • (22:39) - Tool Watch: Prevent ReDOS Attacks with regolith
  • (24:20) - Tool Watch: Filter tsc Errors by File or Folder Using tsef
  • (25:57) - Community Highlight: Tools or Libraries That Make Your Life Easier With TypeScript
  • (30:16) - Community Highlight: A Fast-paced Lumberjack Game Built with Excalibur.js
  • (30:51) - Community Highlight: Daniel Ehrenberg on How JavaScript Evolves by Weekly DevBrew
  • (31:10) - Community Highlight: Joke Bailey
  • (31:51) - Secret of the Handbook: Indexed Types
  • (36:20) - Cool Link: Speeding Up the semver Package
  • (38:36) - Cool Link: Enhance.dev, an HTML-first Full Stack Web Framework
  • (39:37) - Cool Link: mitata, a Benchmarking Tool That Loves You
  • (40:44) - Cool Link: Why contenteditable on Android is the Absolute Worst
  • (41:56) - Cool Link: Creating Legal Documents with Markdown
  • (43:18) - The Minnesota Long Goodbye

  • News
    • Erik’s talk is live! JavaScript Blazingly FAST! Lessons from a Game Engine
    • WebStorm 2025.2: TypeScript-Go Language Server Support
    • V8 engine: How we made JSON.stringify more than twice as fast
    • Bun v1.2.20 includes type-level assertions and @bun/types fixes for TS 5.9
    • Mastra announces TypeScript AI conference

    From the Community

    • Robert Hameetman: How I Built CSS's light-dark() in TypeScript 
    • Boshen: Oxlint working on type-aware linting with TSGo (experimental)
    • JakeRoggenbuck/regolith: Safely write RegExp that are ReDOS-proof
      • PS. Listen to the TypeScript Security episode with Liran Tal
    • iostreamer-X/tsef: CLI tool to filter tsc output and only show errors for specific files and directories
      • Could be a good companion to ts-migrating by Jason Yu
    • Reddit: What tools and libraries do you use with TypeScript to make your dev life easier?
      • ts-pattern
      • Zod
      • Lefthook
      • Effect.ts and Xstate
      • neverthrow
    • Timber Clone: An Excalibur game (written in TS!)
      • Source code: jyoung4242/TimberEx 
    • Weekly Dev Brew with Daniel Ehrenberg (President of Ecma International & TC39 veteran)
    • Joke Bailey on Why is TS is so slow?!

    Secret of the Handbook

    • Typescript Indexed Types
      • Example 1
      • Example 2

     

    Cool Stuff

    • MarvinH: Speeding up the JavaScript ecosystem - Semver 
      • Plus a cool profiling viewer, cpupro
    • Enhance, an HTML-first full stack web dev framework
    • evanwashere/mitata: benchmark tooling that loves you ❤️ 
    • Contenteditable on Android is the Absolute Worst (But, ProseMirror looks really cool) 
    • petalo/legal-markdown-js: Write legal docs in Markdown and TS
    • Supabase, hosted Postgres

    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)

    49 min
  • State of TypeScript Linting 2025 | Joshua Goldberg | Ep 29B

    Joshua Goldberg (JoshuaKGoldberg.com), creator of typescript-eslint, joins us to discuss the state of linting TypeScript projects in 2025. Which linters should we pay attention to? Why are there so many? What's unique about TypeScript? Josh shares his perspective and covers what to look for in a linter and how best to utilize them in your projects.

    Chapters

    • (00:00) - Introducing Josh Goldberg
  • (02:10) - Why Are There So Many Linters?
  • (02:48) - Why Do I Need a Linter With TypeScript, Anyway?
  • (04:13) - Landscape of Linters in 2025
  • (06:56) - How Does TypeScript Linting Actually Work?
  • (08:15) - Creating Type-aware Native Speed Linters
  • (11:06) - What Would the Ideal Linter Look Like?
  • (12:48) - Where is the Bottleneck in Type-aware Linting?
  • (15:15) - Are Native Speed Linters the Answer?
  • (21:03) - Okay, So Which Linter Should I Use?
  • (23:33) - Are There Some Golden Type-aware Rules to Use?
  • (24:44) - Customizing Your Linting Setup
  • (27:05) - Writing Your Own Custom Lint Rules
  • (31:08) - Josh's Recommended ESLint Plugins
  • (34:15) - Future of Linting with Flint
  • (36:37) - Attend SquiggleConf 2025 in Boston

  • Linters
    • typescript-eslint (stable) – TypeScript, most type-aware lint rules
    • oxlint (stable) – Rust, no type-aware lint rules
    • Biome (stable) – Rust, limited type-aware lint rules in V2
    • tsslint (stable) – TypeScript, integrates with tsserver, custom rules with TS compiler API
    • tsl (new) – tsc plugin that ports a selection of typescript-eslint type-aware lint rules
    • Deno lint (stable) – Rust, subset of ESLint rules, no type-aware lint rules
    • Flint (unstable) – TypeScript, Josh’s fast, friendly linter, still in development
    • tsgolint (prototype) – Go, proof-of-concept experimental TypeScript Native integration


    Resources

    • Learn: Vanilla TypeScript Experience
    • Learn: ASTs and typescript-eslint
    • Learn: If I Wrote a Linter, Part 4: Summary 
    • Learn: TypedRocks Builds a Type-aware ESLint Plugin
    • DustinSpecker/awesome-eslint – a list of awesome ESLint plugins and resources
    • JoshuaKGoldberg/create-typescript-app – pick and choose the rules you like
    • ESLint now supports linting for Markdown and CSS
    • Josh’s Favorite Rules and Plugins:
      • typescript-eslint/no-floating-promises – to avoid non-awaited Promises
      • typescript-eslint/no-deprecated – to avoid calling deprecated APIs
      • eslint-plugin-regex – to catch ReDOS vulnerabilities
      • eslint-plugin-n – for Node.js projects
      • eslint-plugin-jsdoc – for the “informative docs” rule
      • eslint-plugin-erasable-syntax-only – to enforce erasable syntax in your TS project (prior to TS 5.8)
      • eslint-plugin-package-json – lint your package.json file


    Where to Find Josh

    • JoshuaKGoldberg.com
    • Flint Discord
    • Josh on BlueSky
    • Josh on Fosstodon
    • Josh on GitHub

    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)

    42 min
  • Node 22.18 LTS Green Lights TypeScript for Orgs | News | Ep 29

    News of the week of July 28, 2025: TS 5.9 released, Node 22.18 is the first LTS to support TypeScript, a Rust-based alternative to Next.js, plus why Laravel ain't your pappy's PHP. From the community: eslint-max-depth-ts plugin, Zod vs. Valibot battle, Better Auth is so good, a deal with the TypeScript devil, and did you know you can render motion graphics with TypeScript.

    Chapters

    • (00:00) - Introduction and Personal News
  • (05:18) - News: TypeScript 5.9 Release Highlights
  • (08:32) - News: Node 22.18 is the First LTS to Unflag Type Stripping
  • (12:12) - News: Deno Drops New Next.js and SvelteKit Templates
  • (13:41) - News: pnpm Adds Support for Deno and Bun to package.json Engines
  • (14:06) - News: A Bunch of ECMAScript Proposals Go Bonkers
  • (16:37) - News: Laravel Wayfinder Generates Types and Is Now Stable
  • (18:54) - News: Trusted Publishing in npm with OIDC
  • (19:35) - PSA: Security Vulnerability in form-data Library
  • (21:10) - Community Highlight: Adding Checked Exceptions to TypeScript
  • (22:57) - Community Highlight: New ESLint Max Depth Plugin by TypedRocks
  • (24:00) - Community Highlight: Zod vs. Valibot by Jack Harrington
  • (24:20) - Community Highlight: Better Auth is a TypeScript Auth Framework
  • (26:09) - Community Highlight: Understanding Effect.ts with Maxwell Brown
  • (26:52) - Community Highlight: The Many, Many, Many JavaScript Runtimes by Jamie Birch
  • (27:37) - Community Highlight: Auditing NPM Packages with NPQ
  • (28:06) - Community Highlight: TypeScript Performance Podcast Episode by Mike Hartington
  • (28:56) - Community Highlight: Learn TypeScript While Building a Game in Construct
  • (29:56) - Community Highlight: Parse TypeScript Types from Strings... with TypeScript Types by easrng
  • (30:55) - Secret of the Handbook: InstanceType
  • (33:17) - Cool Link: Create Video Motion Graphics in TS with MotionCanvas
  • (34:01) - Cool Link: Create Terminal UIs in TS with opentui
  • (34:40) - Weird Link: Running Windows 95 in Electron
  • (36:01) - Cool Library: Compile Time Expressions in TypeScript
  • (38:51) - The Minnesota Long Goodbye

  • News
    • Announcing TypeScript 5.9 official stable release. No changes since the RC. (h/t Rob Palmer summary)
    • Node 22.18 Unflagged TS support, TypeScript is now in LTS
    • Introducing Rari by Ryan Skinner – a full stack React runtime 4X faster than Next.js (BlueSky thread with more details)
    • Next.js & SvelteKit Templates on Deno
    • pnpm adds support for Deno and Bun runtime engine enforcement
    • Laravel announced the stable release of Wayfinder, which generates backend types and routes for TypeScript
      • Video: https://youtu.be/UMqSDRe2oH8?si=e6cw57DJVkS40yv8
      • Laracon 2025 Day 1: Keynote Segment by Joe Tannenbaum (@ 06:16:12)
    • GitHub: npm trusted publishing with OIDC is generally available
    • PSA: Critical Vulnerability in form-data JavaScript Library Exposes Millions of Apps to Code Execution Attacks 

    From the Community

    • Checked exceptions in personal TypeScript fork by nxjosh 
      • Also: Fork Typescript: You Can Just Do Things
    • TypedRocks:  This New ESLint Plugin Fixes Your Nested Unreadable Types in TypeScript
    • Jack Harrington: Zod VS Valibot: JS/TS Validator Battle!
    • Dreams of Code: Better Auth is so good that I **almost** switched programming languages 
    • Maxwell Brown: Effect.ts and Effectful Technologies (devtools.fm)
    • Jamie Birch: The many, many, many JavaScript runtimes of the last decade
    • Trevor Lasn: NPQ: Open source CLI tool that audits and protects your n... (by our friend Liran Tal)
    • Mike Hartington: TypeScript is So Slow… Or Is It? LogRocket podcast 
    • Construct: Learn TypeScript in Construct
    • Funny post about parsing TS types from string literals using... TS types by easrng

    Secret of the Handbook

    • Utility type `InstanceType`
      • https://github.com/excaliburjs/Excalibur/pull/3493/files 
      • https://www.typescriptlang.org/docs/handbook/utility-types.html#instancetypetype

     

    Cool Stuff

    • MotionCanvas makes cool animations in TypeScript
    • https://github.com/sst/opentui – A terminal UI library
    • 💩🚀 Windows 95 in Electron. Runs on macOS, Linux, and Windows.
      • I was playing Space Cadet pinball. They also have DOOM and Wolfenstein pre-installed.
    • comptime.ts – A Zig-style comptime equivalent for TypeScript projects (Vite/Bun supported)

    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

    43 min
  • Building Secure TypeScript Applications | Liran Tal | Ep 28B

    Liran Tal (lirantal.com) from Snyk joins us to dive deep into writing secure TypeScript applications. What's different compared to vanilla JavaScript security? Will schema validators fix all our woes? Can't we let LLMs find and fix security vulnerabilities? Liran educates us about the pitfalls and risks with misplacing trust in TypeScript and LLMs and what we can do to write more secure code.

    Chapters

    • (00:00) - Introducing Liran Tal
  • (02:56) - What's Special About TypeScript Security vs. JavaScript Security?
  • (04:23) - Misplacing Trust in Types
  • (05:49) - Practical Examples of TypeScript Security Issues
  • (08:43) - Why Does TypeScript Security Matter?
  • (10:23) - TypeScript is Not a Security Tool
  • (11:14) - How Does HTTP Parameter Pollution Work?
  • (12:45) - Ways to Mitigate Parameter Pollution
  • (15:44) - Schema Validators Won't Always Save You
  • (16:51) - How Prototype Pollution Works
  • (18:23) - Exploiting Schema Validators Through Prototype Pollution
  • (21:50) - Mitigating Prototype Pollution Risks
  • (25:21) - Consequences of Prototype Pollution
  • (27:23) - Ways to Safely Merge Objects
  • (30:03) - How Can TypeScript Developers Improve Their Security Posture?
  • (33:17) - How Do LLMs Impact Secure Coding?
  • (39:11) - Misplacing Trust in AI-Generated Code
  • (41:10) - Can LLMs Review and Fix Secure Code?
  • (45:57) - So We're All Doomed, Right?
  • (48:31) - Bonus: Game Development as a Teaching Tool
  • (54:48) - Where to Find Liran

  • Links
    • Liran's website and blog
    • Talk: Friend or Foe? TypeScript Security Fallacies
    • Course: Node.js Security Course
    • Book: Essential Node.js Security
    • Book: Serverless Security
    • Tool: npq (welcoming contributions!)
    • https://github.com/lirantal/is-website-vulnerable
    • Game: Dependency Frost
    • Paper: Are AI-generated fixes secure? (July 2025)

    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)

    58 min
  • Deno Fresh 2.0 Alpha, a BigInt Trick, and Learn TS in One Hour | News | Ep 28

    News of the week of July 21, 2025: Deno Fresh 2.0 is in alpha, TS 5.9 RC has some small changes, and beware the latest eslint-config-prettier supply chain attack. From the community: learn TypeScript for free in an hour, master generics through Soduku, run TS in the browser without a build step, and a library for modern TS dependency injection.

    Chapters

    • (00:00) - Introduction and Personal News
  • (07:14) - News: Try Out the Deno Fresh 2.0 Alpha
  • (08:32) - News: TypeScript 5.9 RC Includes Some Small Fixes
  • (09:22) - News: TSGo Adds @satisfies Support for JSDoc
  • (09:44) - PSA: eslint-config-prettier Supply Chain Attack
  • (10:35) - Correction: tsgolint and TSL Clarifications
  • (12:25) - Community Highlight: Learn TS in One Hour by freeCodeCamp
  • (12:53) - Community Highlight: Mastering TypeScript Mysteries by Sweta Tanwar
  • (13:37) - Community Highlight: Using BigInt to Make Sure a String is a Well-formed Integer
  • (14:38) - Community Highlight: tsbro Runs TypeScript in the Browser
  • (16:28) - Community Highlight: pure-ts-mock is a Standalone Mocking Library
  • (17:31) - Community Highlight: Custom SSR for Lit Web Components Using Deno Emit
  • (19:33) - Community Highlight: Mastering TypeScript Types by Laxman Rathod
  • (20:19) - Community Highlight: Building TypeScript Apps with Bun and Electron with electrobun
  • (21:08) - Secret of the Handbook: const Generics
  • (23:06) - Cool API: navigator.sendBeacon for Analytics
  • (24:43) - Cool Lib: es-toolkit, A Modern JavaScript Utility Library
  • (25:26) - Cool Lib: di-wise, a Zero Deps Dependency Injection Library for TS
  • (26:29) - Cool Read: NIH is Far Cheaper Than the Wrong Dependency

  • News
    • Deno Fresh 2.0 is an alpha
    • Announcing TypeScript 5.9 RC 
    • Popular npm linter packages hijacked via phishing to drop malware 

    From the Community

    • freeCodeCamp: Learn TypeScript – Crash Course for Beginners (1 hour free course)
    • City.js Conf: Sweta Tanwar - Mastering TypeScript Mysteries
    • Interesting Type Inference Post using BigInts (Playground Link)
    • stagas/tsbro: TypeScript for the Browser
    • pure-ts-mock (bweet) is a minimalist, type-safe mocking library
    • Matt Jennings pointed out a neat way to do SSR with Web Components (Lit) using Deno Emit and Deno Bundle 
    • Laxman Rathod: Mastering TypeScript Types: A Practical Guide from Basics to Advanced (h/t Shawn Wildermuth)
    • Electrobun aims to be a complete solution-in-a-box for building, updating, and shipping ultra fast, tiny, and cross-platform desktop applications written in Typescript. Under the hood it uses bun to execute the main process and to bundle webview typescript, and has native bindings written in zig.
    • Secret of the Handbook: Const Generics (playground link) (h/t sirpepe) 

    Cool Stuff

    • Navigator: sendBeacon() method
    • toss/es-toolkit: A modern JavaScript utility library that's 2-3 times faster and up to 97% smaller—a major upgrade to lodash
    • exuanbo/di-wise: Lightweight and flexible dependency injection library for JavaScript and TypeScript, w/wo ECMAScript decorators
    • Clean Architecture in TypeScript | 弦而時習之 
    • Lewis Campbell: NIH Is Far Cheaper Than The Wrong Dependency 
    • Learn Wardley Mapping

    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)

    33 min
  • Nuxt 4.0, Bun's Smarter Types, and Testing Type Completions | News | Ep 27

    News of the week of July 14, 2025: Nuxt 4.0 is released along with an acquisition by Vercel, TSGO ships go-to-type definition support, and Bun ships smarter types. From the community: test type completions and benchmark instantiations with a testing package from Arktype, treating types as values with type-level maps, and dive a bit deeper into how type inference works.

    Chapters

    • (00:00) - Introduction and Personal News
  • (06:02) - News: Nuxt 4.0 Release and NuxtLabs Joins Vercel
  • (09:57) - News: TSGO Adds Go-to-type Definition Support
  • (10:33) - News: Node 24.4.1 Security Patches
  • (12:12) - News: Bun 1.2.19 Ships Smarter Types
  • (13:21) - News: SvelteKit Now Supports Vite 7 and Rolldown
  • (13:52) - Community Highlight: oxlint + tsgolint = no slowdown!
  • (16:01) - Community Highlight: Type-safe Event Emitters by Artem
  • (17:13) - Community Highlight: Understanding TypeScript's Type Inference by SharpCoderBlog
  • (17:46) - Community Highlight: Testing Type Completions in TypeScript by Arktype
  • (19:17) - Community Highlight: Type-safe Persistence and Auto-theming in Svelte 5 by Puru Vijay
  • (19:59) - Community Highlight: Your GPU is a JavaScript Runtime by Iwo Plaza
  • (20:54) - Community Highlight: DHH Hates TypeScript
  • (22:15) - Community Highlight: Node and Deno Permissions Discussion by Dr. Axel
  • (25:29) - Community Highlight: Treating Types as Values with Type-level Maps by Gregros
  • (27:08) - Community Highlight: Return Types on Functions, Yay or Nay? by Kyle Shevlin
  • (28:15) - Community Highlight: Jake and Josh Interview on Software Engineering Daily Podcast
  • (28:34) - Cool Link: Dokploy is an OSS Alternative to Vercel, Netlify, and Heroku
  • (30:07) - Cool Link: Turning a Toy Into a Cyberdeck by Attoparsec
  • (30:52) - Cool Link: What's New in Vite by Evan You
  • (31:38) - Cool Link: Add Windows to Your App with winbox.js
  • (33:21) - Cool Link: Marginal Utility of Money by The Happy Philosopher
  • (37:42) - Post-credits Banter

  • Personal News
    • Sorry for the delay, Kamran just got back from vacation!
    • Follow Kamran's trip on Insta

    News

    • Nuxt 4.0 is released and NuxtLabs joins Vercel
    • typescript-go: Implement go-to-type-definition (PR #1405)
    • Node.js 24.4.0 and 24.4.1 include high-severity CVE fixes (as well as 20.x, and 22.x release lines)
    • Bun 1.2.19 is smarter when you are not using `dom` lib types
    • What’s new in Svelte: July 2025

    From the Community

    • Boshen: oxlint + tsgolint = no slowdown! no-floating-promises completes 4.4k files in 3.2 seconds, in the vscode repo.
    • Artem: rettime, a type-safe event emitter
    • SharpCoderBlog: Deep Dive into TS Type Inference
    • Arktype: Testing Type Completions with @ark/attest (bsky thread)
    • Puru Vijay: Type-Safe Persistence and Auto-Theming in Svelte 5
    • Iwo Plaza: Your GPU is a JavaScript runtime* (TypeGPU deep-dive) 
    • DHH: I hate TypeScript
    • Discussion: Per-module or Per-dependency Permissions?
    • Greg Rosenbaum: Treating types as values with type-level maps
    • Kyle Shevlin: Return types on functions, yay or nay?
    • Software Engineering Daily Podcast: TypeScript with Jake Bailey

    Cool Stuff

    • Tool: dokploy is an OSS alternative to Netlify 
    • Video: Turning a toy into a cyberdeck
    • Video: What's New in Vite Explained by Its Creator 
    • Library: Put Windows in Your Web App with WinBox.js
    • Blog: How Understanding the Marginal Utility of Money Will Make you Happier 

    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)


    39 min
  • TypeScript 5.9 Beta, Redonkulous Linting, and a Community Enum Syntax Proposal | News | Ep 26

    News of the week of July 7, 2025: We dive into the TypeScript 5.9 beta, an experimental Go linter for TS/JS, plus make sure you upgrade your Node.js versions! From the community: a new enum syntax proposal in case JS doesn't get native enums, TSL brings faster type-aware linting, and trashh_dev asks TypeScript: WTF?

    Chapters

    • (00:00) - Introduction and Personal News
  • (07:10) - News: TypeScript 5.9 Beta
  • (19:42) - News: tsgolint, an Experimental JS/TS Native Linter
  • (21:56) - PSA: Upgrade Your Node.js 20.x, 22.x, and 24.x Installations
  • (22:46) - Community Highlight: TSL, a New Type-aware Linter
  • (25:00) - Community Highlight: New typescript-eslint Homepage Preview
  • (26:04) - Community Highlight: New Enum Syntax Proposal by Naman
  • (29:53) - Community Highlight: WTF TypeScript by trashh_dev
  • (31:27) - Community Highlight: Migrating MorphKit to NativeScript with LLMs
  • (33:47) - Community Highlight: ariadne-ts Brings Rust-style Diagnostic Messages to TS
  • (35:20) - Cool Link: Get Current Weather in Your Terminal
  • (36:12) - Cool Link: JSON Repair
  • (37:09) - Cool Link: aws/jsii Lets You Consume TS Libs from Python, Java, and C#
  • (39:38) - Cool Link: Check Road Conditions in Colorado with cotrip.org

  • Personal News
    • Sorry for the delay, Kamran's on vacation!
    • Follow Kamran's trip on Insta

    News

    • Announcing TypeScript 5.9 Beta 
    • tsgolint, an experimental proof-of-concept typescript-go powered JS/TS linter written in Go
    • PSA: High-severity security patches coming to Node.js on Patch Tuesday for 24.x, 22.x, and 20.x release lines!

    From the Community

    • Arnaud Barré: Introducing tsl, an extension of tsc for type-aware linting!
    • Joshua Goldberg: New TypeScript Eslint homepage
    • Naman: New enum syntax for TypeScript 
    • Chris Batiste (trashh_dev): WTF Typescript 
    • nStudio: Morphing Swift to 100% TypeScript with NativeScript + AI
    • Ariadne-ts v0.3.0: Beautiful Diagnostics in TypeScript (h/t Reddit)

    Cool Stuff

    • aws/jsii allows code in any language to naturally interact with JavaScript classes
    • COtrip.org – get road conditions in Colorado
    • `curl wttr.in` -- Weather from the terminal
    • josdejong/jsonrepair: Repair invalid JSON documents 

    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)

    42 min
  • Deno 2.4 Bweets, Next.js Vuln Alert, Modern Node, and Typed Mongo | News | Ep 25

    News of the week of June 30, 2025, Deno Bundle is Back in Black in 2.4! We coin the term "Bweet", Deno also gets some non-standard import attributes for text and bytes, OTEL is now stable in Deno, and Next.js has a DoS vulnerability. From the community: we chat about modern Node.js patterns for 2025, NDC Oslo talks are rolling in on YouTube, and strongly type your MongoDB collections!

    Chapters

    Personal News

    • Shure MV7+ Microphone
    • Excalibur Playground Prototype is Live (Thanks for the Pong Game Chris K!)
    • Playing with Monaco code Editor
    • Arch Linux and "Ricing"

    News

    • Deno 2.4 is released and it's JAM PACKED!
    • PSA: For Next.js users: CVE-2025-49826 - Vercel

    From the Community

    • Node.js LGBTQIA+ Stories: Emelia Smith
      • “The largest change I made to Node.js was splitting up the documentation into multiple files and pages, prior to this change, all the documentation had been on a single large page only.”
    • Modern Node.js Patterns for 2025 (kashw1n)
      • Undici Docs
      • Undici Blog Post
    • NDC Oslo 2025 Talks are Rolling out
      • A Deep Dive into Advanced TypeScript: A Live Coding Expedition Christian Woerz
      • Keynote CTRL+SHIFT+(BUILD) PAUSE - Laila Bougria
    • NPM Specifiers in Node (Deno YouTube)
    • Trace Resolution is very handy about type check errors in libraries (@literat.dev)
      • “TIL: Using `tsc --traceResolution` is very handy to get information about why the heck TypeScript is raising an error about the file that should not be part of the library, but it is included during the type check 😅”
    • Typing MongoDB Collections in TypeScript (Daniel Perez) 
    • From the vault, Feb 2025: Migrating 160,000 Lines of Production Banking JavaScript to TypeScript with Zero Downtime (Ben Howdle)

    Cool Stuff

    • All things NeoVim, Arch, Hyprland, and tech goodness YouTube Channel Typecraft
    • CGI Today
    • Local-first software: You own your data, in spite of the cloud
    • LocalFirstConf

    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)

    41 min
  • ECMAScript 2025 is Ratified, Vite 7, and 6 Advanced TS Tricks | News | Ep 24

    News for the week of June 23, 2025: Ecma ratifies ES2025 standard, Vite 7 is mostly deprecations, Oracle gets a free pass, and the experimental type stripping warning is... stripped... from latest Node LTS releases. From the community: 6 advanced TS tricks, a new type-safe WebSockets API, and RegEx tips.

    Chapters

    • (00:00) - Introduction and Personal News
  • (04:59) - News: ECMAScript 2025 is Here
  • (07:06) - News: Vite 7.0 is Out
  • (10:15) - News: Node 24.3.0 and 22.17.0 LTS Releases
  • (10:39) - News: Oracle v Deno Trademark Fraud Claim is Dismissed
  • (12:04) - News: Astro 5.10 Introduces Experimental Live Content Collections
  • (12:34) - Community Highlight: 6 Advanced TS Tricks by OlegWock
  • (15:54) - Community Highlight: TypeScript Stuff I Wish I Knew Earlier
  • (19:52) - Community Highlight: zap-socket Offers a TypeScript-first WebSocket API
  • (20:42) - Community Highlight: Dr. Axel Shares Tips for Making Regular Expressions Better in JS
  • (22:01) - Community Highlight: Functional Programming Examples in TS
  • (22:50) - Community Highlight: Exhaustiveness Checking with never
  • (24:12) - Community Highlight: Deno Adding Support for Import Type Text and Bytes
  • (24:39) - Community Highlight: Importing JSON as const
  • (26:37) - Community Highlight: Branded Types Example with ArkType
  • (27:21) - Cool API: Promise.try Nuances Erik Realized After the Fact
  • (29:48) - Cool Watch: Mitchell Hashimoto's Talk on Testing
  • (30:44) - Cool Listen: Jake Archibald on Why We Don't Have HTML Imports
  • (31:25) - Cool Link: PNG 3.0 Spec
  • (32:41) - Cool Link: Invite an Eagle to Your Zoom Meeting
  • (33:41) - Cool Read: Node.js Celebrates Pride Month

  • News
    • Ecma International approves ECMAScript 2025: What’s new? 
    • Vite 7.0 is out and deprecates a bunch of stuff
    • Oracle fraud claim is dismissed in the latest JavaScript™ Trademark Update from Deno
    • Astro 5.10 brings experimental Live Content Collections

    From the Community

    • 6 advanced TypeScript tricks · OlegWock (h/t Reddit)
    • TypeScript stuff I Wish I Knew Earlier (h/t Reddit)
    • Use https://github.com/type-challenges/type-challenges to become a generic God
    • zap-socket – A Typescript-first abstraction over WebSockets (h/t Reddit)
      • Blog post: My attempt at fixing websockets 
    • Dr. Axel's tips for making regular expressions easier to use in JavaScript 
    • Functional Programming tips in TypeScript by Kanishka Naik
      • Algebraic Data Types
      • Monoids and Semigroups 
      • Pattern Matching 
      • Lazy Evaluation 
    • Exhaustive Checks with never by Nico
    • Import types text and bytes coming to Deno 2.4 via David Sherret
    • Importing JSON config as const via cinny.bun.how (+ tracking TS issue)
    • Example of using branded (nominal) types in ArkType


    Cool Stuff

    • Erik's neovim config is open source (one of us! one of us!)
    • API: Promise.try
    • Talk: Can we test it? Yes, was can! - Mitchell Hashimoto (co-founder of Hashicorp)
    • Listen: Jake Archibald on Native HTML Includes (ShopTalk)
    • Read: PNG is back! by Chris Blume who chairs the PNG working group
    • Read: New version of PNG to challenge AVIF and WebP for image dominance on the web
    • Invite: Pay to have an eagle, owl or falcon join your Zoom meeting
    • Read: Node.js series to celebrate Pride Month


    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)

    36 min
  • New Biome, Mocha, Jest, and k6 Releases All Kissed by TypeScript | News | Ep 23

    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

  • News
    • Biome v2 codename Biotype brings type-aware linting without TSC!
      • You can check out what the noFloatingPromises rule looks like to write type-aware rules
    • Mocha 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 support
      • Fun 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 tests
    • Firefox 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 development
    • PSA: 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.js
    • freeCodeCamp Blog: How Queues Work in TypeScript by Yazdun
    • Dr. Axel's Corner: 
      • How TypeScript solved its global `Iterator` name clash
      • TypeScript: 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 Stack
    • @slack.engineering on Bluesky shares CI improvements by migrating to TSGO
    • TypeGPU 0.5.9 release by Iwo Plaza 
      • Video: Iwo Plaza – The Road to Type-Safety on the GPU | RNCK #15
      • Video: 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 needed
    • The Dying Art We All Depend On by David from Raptitude
    • The 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)

    40 min

About TypeScript.fm - The Friendly Show for TypeScript Developers

From the publisher's feed

The two TypeScript Fools, Kamran Ayub and Erik Onarheim, get together weekly to bring you news, community highlights, and deep dives into the TypeScript ecosystem. Stay up-to-date on what's happening…

More shows like TypeScript.fm - The Friendly Show for TypeScript Developers

Software Engineering Radio - the podcast for professional software developers by team@se-radio.net (SE-Radio Team)

Software Engineering Radio - the podcast for professional software developers

275 Listeners

Modern Web by Modern Web

Modern Web

12 Listeners

JavaScript Jabber by Charles M Wood

JavaScript Jabber

62 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

984 Listeners

Practical AI by Daniel Whitenack and Chris Benson

Practical AI

208 Listeners

Last Week In AWS Podcast by Corey Quinn

Last Week In AWS Podcast

79 Listeners

PodRocket by LogRocket

PodRocket

59 Listeners

Oxide and Friends by Oxide Computer Company

Oxide and Friends

66 Listeners

Front-End Fire by TJ VanToll, Paige Niedringhaus, Jack Herrington

Front-End Fire

11 Listeners