תוכן מסופק על ידי Erik Onarheim and Kamran Ayub. כל תוכן הפודקאסטים כולל פרקים, גרפיקה ותיאורי פודקאסטים מועלים ומסופקים ישירות על ידי Erik Onarheim and Kamran Ayub או שותף פלטפורמת הפודקאסט שלהם. אם אתה מאמין שמישהו משתמש ביצירה שלך המוגנת בזכויות יוצרים ללא רשותך, אתה יכול לעקוב אחר התהליך המתואר כאן https://he.player.fm/legal.
Player FM - אפליקציית פודקאסט התחל במצב לא מקוון עם האפליקציה Player FM !
For many travelers, Antarctica is a bucket-list destination, a once-in-a-lifetime opportunity to touch all seven continents. In 2023, a record-breaking 100,000 tourists made the trip. But the journey begs a fundamental question: What do we risk by traveling to a place that is supposed to be uninhabited by humans? And as the climate warms, should we really be going to Antarctica in the first place? SHOW NOTES: Kara Weller: The Impossible Dilemma of a Polar Guide Marilyn Raphael: A twenty-first century structural change in Antarctica’s sea ice system Karl Watson: First Time in Antarctica Jeb Brooks : 7 Days in Antarctica (Journey to the South Pole) Metallica - Freeze 'Em All: Live in Antarctica Learn about your ad choices: dovetail.prx.org/ad-choices…
תוכן מסופק על ידי Erik Onarheim and Kamran Ayub. כל תוכן הפודקאסטים כולל פרקים, גרפיקה ותיאורי פודקאסטים מועלים ומסופקים ישירות על ידי Erik Onarheim and Kamran Ayub או שותף פלטפורמת הפודקאסט שלהם. אם אתה מאמין שמישהו משתמש ביצירה שלך המוגנת בזכויות יוצרים ללא רשותך, אתה יכול לעקוב אחר התהליך המתואר כאן https://he.player.fm/legal.
The two TypeScript Fools, Kamran Ayub and Erik Onarheim, get together once a week to bring you news, community highlights, and deep dives into the TypeScript ecosystem. Stay up-to-date on what's happening and learn new things to make you a better TypeScript developer along the way!
תוכן מסופק על ידי Erik Onarheim and Kamran Ayub. כל תוכן הפודקאסטים כולל פרקים, גרפיקה ותיאורי פודקאסטים מועלים ומסופקים ישירות על ידי Erik Onarheim and Kamran Ayub או שותף פלטפורמת הפודקאסט שלהם. אם אתה מאמין שמישהו משתמש ביצירה שלך המוגנת בזכויות יוצרים ללא רשותך, אתה יכול לעקוב אחר התהליך המתואר כאן https://he.player.fm/legal.
The two TypeScript Fools, Kamran Ayub and Erik Onarheim, get together once a week to bring you news, community highlights, and deep dives into the TypeScript ecosystem. Stay up-to-date on what's happening and learn new things to make you a better TypeScript developer along the way!
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. Links SquiggleConf 2025 Michigan TypeScript DOOM with Dimitri TypeScript Types Can Run Doom Anders TS GO Interview Final Boss Challenge VGM Con Excalibur Games: Sum Monsters Sweep Stacks Tiny Tactics Jelly Jumper Shader Programming Talk Interview 00:00 Intro 00:37 SquiggleConf 2025 01:33 Personal News 05:34 Dimitri's Background and Michigan TypeScript 10:18 JSON Parser in TypeScript Types 10:55 Where do you start with DOOM in Types? 11:51 "DOOM" Complete 16:09 How do you run DOOM in TS? 20:15 Debugging an Emulator in TS Types 22:14 How does DOOM work? 23:54 Using Web Assembly TypeScript Types WASM Runtime 26:17 Understanding WebAssembly and TypeScript Integration 28:49 The Concept of Abstraction in Programming 31:03 Challenges in Implementing WebAssembly from the Spec 33:16 Ambiguities in Specifications and Their Impact 35:11 Debugging Techniques and Error Handling 37:06 Innovative Use of Overflow in Game Development 40:46 Insights Gained from TypeScript During the Project 43:49 The Complexity of TypeScript Types 49:18 Time Travel Debugging and Memory Management 51:20 The Most Challenging Aspects of the Project 55:16 Reactions to DOOM 01:00:28 The Dawn of TypeScript Go 01:10:33 Lessons Learned and Future Directions 01:17:45 Outro News 01:19:06 News for the Week of April 7th Zod 4 Beta Matt Pocock's Video 01:24:29 Community Posts Dan Abramov - RSCs or Maybe Not https://overreacted.io/react-for-two-computers/ https://youtu.be/ozI4V_29fj4 Axel’s Corner Testing 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.html 01:27:54 Secret of the Handbook https://www.pipe0.com/blog/never-in-typescript https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types 01:29:36 Cool Stuff Kamran https://bun.sh/blog/debugging-memory-leaks Animate UI: copy paste or installable components built with TS, React, and Tailwind using Motion. Erik Sebastian Lague - Simulated CPU https://youtu.be/HGkuRp5HfH8?si=9iNm0Ad1z4T4AePj Sebastian Lague - Rendering Text https://youtu.be/SO83KQuuZvg?si=uzPojhUqBvV35q7F 01:30:28 Debugging and Performance Optimization Techniques 01:34:31 Post-roll 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 )…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
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 (feedback@typescript.fm) 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 Post JavaScript.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 Post Kat Marchán's Fix 15:23 Mozilla JavaScript Sandbox Vulnerability Bleeping Computer CVE Details from Mozilla 16:51 Community: ArkType Deep Dive 17:31 Community: JavaScript & TypeScript in my Database Typed Rocks Video PLV8 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 Post HyperLight Main Repo HyperLight WASM Repo 30:26 Post-roll…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
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 Welcome 01:33 Kamran & Erik IRL Minnebar VGM Con 02:39 Erik @ C Fundamentals by Frontend Masters FFM 02:55 Vibe Coding 03:43 LLMs "what are they good for?!" 04:31 Kamran's New Course 06:16 Kamran Review book on Time Freedom 07:31 Scams and Phone Calls FTC Warning about fake Jury Duty (09:26) News for the Week of March 17, 2025 09:34 Next.js 9.1 CVE PR with fix Ed's Video on this @ Low Level Learning 10:43 Deno 2.2.5 11:13 Deno Patch Functionality 11:59 Deno FFI Docs Update 13:04 PandaCI : A New CI/CD Tool 16:17 HKT Core (17:33) Community Highlights 17:33 TS Go GitHub Discussion on Compiler API 18:24 Deno Compile Vite 20:07 Blog Post by Andy Jiang about Deno+OTel 22:35 Cory House on Implementing Immutability in TypeScript 23:16 RGSTRY for managing decorator metadata 24:19 Corepack removal from Node, Sarah has a good overview Bun Deep Dive 27:22 Introduction to Bun Runtime Baby Got Back by Jonathan Coulton 28:01 What is Bun 28:23 Bun vs Node.js and Dino 29:25 Features and Capabilities of Bun 30:40 Bun Performance 31:23 C Tangent 32:12 Bun DX 35:20 Standalone Executable 35:53 Use Cases for Bun 38:00 Cautions and Considerations 41:38 Good Use Cases 46:24 Bun Community This OP asked about Bun and ended up moving to Deno actually Memory Leaks Reddit threads 48:09 Conclusions Outro 52:00 Cool Stuff This Week 58:11 Give Us Feedback (feedback at typescript.fm) Other Links Profiling TypeScript in VSCode Cobol Based UI https://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…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
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 TypeScript Start 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-app v2 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 TypeScript Matt Pocock ( Total TypeScript ) Cory House ( Getting Started with TypeScript ) Basarat ( TypeScript Deep Dive ) Code challenge: Advent of TS Code challenge: Advent of Code Code challenge: Type Challenges ( 32:17 ) - And of course, Josh's Book: Learning TypeScript ! Learn the why and theory Blog and articles Buy 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 Innovations Write your own TS linter (45:02) Where to Find Josh Website Follow on BlueSky @JoshuaKGoldberg Sponsor on GitHub Attend 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) support Nx 20.5 adds TS project reference support Cory House releases a new TypeScript course on Dometrain React Router 7.3 minor release Experimental support for client contexts Experimental support for route middleware ( 49:25 ) - Community Updates Dr. Axel's Corner - Dive deeper with this TSGO Explainer Sxzz (Kevin from Vite) created a TSGo playground with WASM TSGo community content MiTS interview Syntax interview Matt Pocock interview Theo'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 Docs Everhood 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…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
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 Corner 2ality: My TS Sales Pitch 2ality: Unions and intersections of object types 2ality: 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 TypeScript Plus: 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 Go Kevin 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 tracker rspack , 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…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
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 prize Flappy Bird Article Excalibur Lighting PRs: Pipeline & PoC Week of February 24, 2025 ( 04:16 ) - News: TypeScript 5.8 Released userland-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 Willison Write-up on Socket.dev Mark Seeman's series (and course) on type-driven development (F#) ( 20:24 ) - Community Highlights: Dr. Axel's Corner free-typescript-resources Gist Testing 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 First Using Vite react-ts template ( 28:27 ) - Deep Dive: TSConfig Options for React and TS ( 32:55 ) - Deep Dive: How JSX/TSX Works Under the Hood Deno has native support for TSX/JSX And so does Bun ( 35:03 ) - Deep Dive: TSX in Different Runtimes ( 35:39 ) - Deep Dive: Typing Components and Props Example 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;dl Resource: React and TS Cheatsheets Resource: 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…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
This week Kamran and Erik discuss when ORMs are helpful... or hurtful. They cover trade-offs, the spectrum of abstraction, the value of escape hatches, and the options available to you in the TypeScript ecosystem. Week of February 17, 2025 ( 05:54 ) - News: Ember 6.2 Released ( 07:16 ) - News: Deno 2.2 Released npm-check-updates package Package JSON Upgrade VS Code extension https://github.com/vuki656/package-info.nvim for Neovim Community Highlights ( 16:48 ) - Community Highlights: UseTypeScript for Your Stored Procedures?! ( 17:20 ) - Community Highlights: Node API Compatibility Across Runtimes ( 17:58 ) - Community Highlight: Why Type Catalogs Can Be Better Than Unions ( 19:05 ) - Community Highlight: tapi.js Automatically Maps JSON to Strongly-Typed Classes ( 20:33 ) - Community Highlight: Standard Schema Hopes to Align TS Validator Libraries ( 21:34 ) - Community Highlight: 2ality: Read-only accessibility in TypeScript Deep Dive: TypeScript ORMs ( 22:56 ) - Deep Dive: TypeScript ORMs ( 24:21 ) - Deep Dive: Code-first or Database-first? ( 25:42 ) - Deep Dive: What Pain Do ORMs Solve? ( 27:21 ) - Deep Dive: When Should You Use an ORM? Martin Fowler's ORM Hate article Primeagen's Don't Use an ORM reaction video ( 30:02 ) - Deep Dive: To Use An ORM Or Not to Use an ORM? ( 31:47 ) - Deep Dive: SQL Builders vs. Abstracted ORMs ( 32:28 ) - Deep Dive: Do You Have An Escape Hatch? ( 33:36 ) - Deep Dive: Are ORMs A Symptom of Poor Data Architecture? ( 37:01 ) - Deep Dive: TypeScript ORM Landscape ( 37:26 ) - Deep Dive: Drizzle ORM Fireship's Drizzle in 100 seconds Works with Deno , Bun, Node.js ( 42:06 ) - Deep Dive: Prisma ORM Works with Deno (unofficially) and Node.js Prisma is being rewritten in TypeScript ( 46:42 ) - Deep Dive: MikroORM ( 49:10 ) - Tangent: Kamran and Erik Exchange War Stories ( 50:48 ) - Deep Dive: MikroORM Continued ( 51:44 ) - Deep Dive: TypeORM ( 53:06 ) - Deep Dive: ConvexDB ( 55:00 ) - Deep Dive: sequelize ( 55:48 ) - Deep Dive: Other Alternatives Objection.js Knex.js Waterline Bookshelf Mongoose/ Typegoose ( 56:33 ) - Deep Dive: Takeaways / tl;dl Secrets of the Handbook ( 57:47 ) - Branded / Nominal Types TypeScript Playground Example – Nominal Typing 400-comment GH issue on different ways to do nominal typing and trade-offs Michael Zalecki blog post on nominal types in TypeScript Branded Types from Learning TypeScript by Josh Goldberg Created a "sealed" method/class ( example from Excalibur) Links ( 01:04:25 ) - Cool Stuff: Kodaps Academy on Drizzle Versus Prisma ( 01:05:10 ) - Cool Stuff: jet Validators Reference: https://blog.logrocket.com/best-typescript-orms/ Reference: https://www.sitepoint.com/javascript-typescript-orms/ Reference: https://www.timsanteford.com/posts/choosing-the-best-typescript-orm-for-your-project/ Sponsored by Excalibur.js Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScrip...…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
This week Kamran and Erik unpack JSR, the new open alternative to the npm registry from the folks at Deno. They both published packages and discuss what JSR offers npm doesn't, when to use it, and how it works for both consumers and maintainers. (00:00) - The Sheer Joy of Publishing to JSR | Ep 6 (05:40) - News: TypeScript 5.8 RC (07:45) - News: JSR Open Governance Board (08:59) - News: ESLint Plugin for erasableSyntaxOnly (11:03) - News: Windows Terminal 1.22 Released (15:31) - News: Create React App is Officially Deprecated (17:50) - News: Interop 2025 (19:59) - News: Prettier 3.5 Released With Better TS Support (20:42) - Community Highlight: Wheel of Names TypeScript+React Project Tutorial (21:05) - Community Highlight: Repository Pattern and Clean Architecture with TS and Prism (21:34) - Community Highlight: Welch Canavan on the Sheer Joy of Publishing to JSR (22:01) - Community Highlight: The Good Doctor is On a Roll (22:47) - Community Highlight: Tips for Migrating Node.js Projects to Deno (24:09) - Community Highlight: Sort Object Properties by Type ESLint Plugin (24:30) - Community Highlight: Unloader and Unplugin for TypeScript and oxc (25:21) - Community Highlight: dsbuild Bundler for Deno (25:54) - Deep Dive: What is a Pirate's Favorite Registry? (27:49) - Deep Dive: Differences Between npm and JSR (30:38) - Deep Dive: JSR's Security-First Approach (32:39) - Deep Dive: Consuming JSR Packages in the Browser (35:26) - Deep Dive: Should You Publish to Both npm and JSR? (36:31) - Deep Dive: Can You Publish Private Packages? (38:16) - Deep Dive: JSR's TypeScript-First Approach (42:04) - Deep Dive: Can You Tag Versions? (44:51) - Deep Dive: No API Keys for Publishing (46:58) - Deep Dive: Yanking or Unpublishing a Package (48:16) - Deep Dive: Kamran's Experience Publishing to JSR (53:16) - Deep Dive: Erik's Experience Publishing to JSR (55:06) - Secrets of the Handbook: Decorators (01:00:03) - Cool Stuff: Write Vanilla CSS in TypeScript (01:00:32) - Cool Stuff: Signals in Lit (01:01:35) - Cool Stuff: Train Your vim Muscle Memory (01:01:52) - Cool Stuff: AreTheTypesWrong.com (01:02:44) - Cool Stuff: Homura Ham's Hamster Maze Videos (01:05:10) - Bonus: JSR ASMR (?!) Week of February 10, 2025 TypeScript 5.8 RC Released -- Notably, the checked return expressions was walked back 🥹 But, it includes require(esm) support. Deno announced the JSR Open Governance Board Warn or emit lint errors if your TypeScript contains erasable syntax with Josh Goldberg's new ESLint plugin Windows Terminal 1.22 released with support for Sixels graphics Node 20 got require(esm) support backported. PSA: Node 18 EOL is April 30, 2025 React team officially deprecates Create React App Browser vendors met to discuss which APIs to implement between them at Interop 2025 Prettier 3.5 released with better TS support Astro 5.3 has better overall performance and Netlify support Community Highlights Tutorial : FreeCodeCamp build a React and TypeScript Wheel of Names project Video: Repository pattern and clean architecture with TypeScript / Prism (h/t Alex Rusin ) Blog post: The Sheer Joy of Publishing to JSR (h/t I. Welsch Canavan ) Blog post: Deno on npm: specifiers vs transpiled services like esm.sh Via The Good Dr. Axel Rauschmayer Blog Post: extracting parts of composite types via `infer` Blog Post: A guide to tsconfig.json (Updated for TS 5.8) Blog Post: TypeDoc: testing code examples in comment docs Blog Post: Mapped Types Discussion: dayjay migrated all their Node.js projects to Deno . What did they learn? Tools: Nir Tamir created a TS ESLint rule for sorting object properties by type Tools: Kevin Deng is working on Unloader & Unplugin Tools: A new Deno Bundler (dsbundle) Deep Dive: JSR JSR , an open source npm alternative JSR's Provenance Attestation for verification Zero-config GitHub publishing Doesn't yet support private publish (but there's a workaround ) No support in Artifactory yet JSR will warn you of slow types Kamran published ts-has-guards for guarding `Map.has` and related APIs Erik published Excalibur's ECS core code for fun JSR will score your package No scope squatting (or selling)! Secrets of the Handbook Decorators 2ality's guide on decorators TC39 updates presentation oxc is working on support for modern and legacy Links Kat…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
This week Kamran and Erik try to dissect the complex landscape of JavaScript and TypeScript compilers, transpilers, interpreters, engines, and runtimes (oh my!). What are the tools, what are they used for, why is the world so complicated, and what should you care about as a TS developer? (04:55) - This Week in TypeScript: Node.js Corepack Issue Affects Users (06:16) - This Week in TypeScript: Vite and Vitest Security Vulnerabilities (07:18) - This Week in TypeScript: 2ality on Enum Patterns (08:51) - This Week in TypeScript: 2ality's Tutorial on Publishing ESM Packages with TypeScript (09:53) - This Week in TypeScript: Should We Move On to ESM-Only? (13:13) - This Week in TypeScript: HTTP2 Support Across Node.js, Bun, and Deno... Or Lack Thereof (14:14) - This Week in TypeScript: Nx Has Some New TypeScript Monorepo Guides (14:38) - This Week in TypeScript: Zero to Mastery Shares a TypeScript Cheat Sheet (15:09) - This Week in TypeScript: TS Comment Directives (17:21) - Deep Dive: Compilers and Runtimes (19:32) - Deep Dive: What's the Difference Between a Compiler and Transpiler? (21:11) - Deep Dive: Why Do We Need a TypeScript Compiler? (22:02) - Deep Dive: The TypeScript Compiler (TSC) (23:38) - Deep Dive: What's an Interpreter? (25:06) - Deep Dive: What's an Engine? (27:52) - Deep Dive: Recap So Far (28:31) - Deep Dive: Babel, the OG Transpiler (29:23) - Deep Dive: What is SWC? (31:12) - Deep Dive: Using the verbatimModuleSyntax TSConfig Flag (32:35) - Deep Dive: What is esbuild? (34:23) - Deep Dive: Okay, What's the Difference Between SWC and esbuild? (35:51) - Deep Dive: So, What is oxc Then?? (37:03) - Deep Dive: Erik Says checker.ts is "Gigundous" (???) (37:58) - Deep Dive: Wait, oxc Can Output Type Declarations?! (39:34) - Deep Dive: Writing Your TypeScript So It Compiles Faster (41:10) - Deep Dive: What Does deno compile Do? (42:12) - Deep Dive: What Are The Different JS/TS Runtimes? (43:43) - Deep Dive: What Differentiates Bun from Deno? (45:26) - Deep Dive: Serverless JavaScript Runtimes (workerd, Vercel Edge) (46:48) - Deep Dive: Writing Isomorphic JavaScript or TypeScript (47:44) - Deep Dive: Who Will Stop This Madness? (50:11) - Deep Dive: Should Microsoft "Fix" TSC? (53:43) - Deep Dive: WHAT DOES ALL THIS MEAN? (57:36) - Secrets of the Handbook: Named Tuple Values (01:00:59) - Cool Stuff: Node ES Language Support Matrix (01:01:46) - Cool Stuff: VSCode Pretty TS Error Extension Week of February 3, 2025 📌 PSA: Node.js LTS corepack registry key signing issue breaks people's CI/CD pipelines and npm/pnpm installations. If you are affected, check this issue out! It’s fixed now and backported to Node 20.18.3. 📌 PSA: There was a remote code execution vulnerability in Vitest, and a Vite dev server vulnerability . Update to the latest patch versions! Community Highlights Blog Post: TypeScript enums: use cases and alternatives (Axel Rauschmayer) Blog Post: Tutorial: publishing ESM-based npm packages with TypeScript (Axel Rauschmayer) Blog Post: Move on to ESM-only (Anthony Fu) Blog Post: Fetch and HTTP/2 support in Node.js, Bun and Deno (George Haidar) Learning: Nx is doing cool stuff for TS monorepo setups and has a whole series on it Cheatsheet: Bookmark this TypeScript Cheat Sheet by Zero to Mastery (PDF version available) Book: Joshua Goldberg has a new Learning TypeScript book and shares a tip about TS comments Compilers and Runtimes Deep Dive The JavaScript Runtime Environment (Jamie Uttariello) Wikipedia: ECMAScript Engines V8's interpreter, Ignition Hermes engine for React Native TSC, the official Microsoft TypeScript compiler SWC , a Rust-based compiler for JavaScript and TypeScript esbuild , a Go-based compiler for JavaScript and TypeScript oxc , a (new) Rust-based compiler by the creators of Vite Deno compile for creating binary executables Bun runtime, a drop-in replacement for Node workerd runtime by Cloudflare Vercel Edge Runtime A list of WebAssembly (WASM) runtimes WinterTC , a committee for unifying server backend runtime APIs Links TypeScript 4.0's labeled tuple elements ( playground link ) Wondering what version of Node supports what ES features and syntax? https://node.green/ Replace those ugly TS errors in VSCode with something more pretty 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 Kamran Ayub - Host Erik Onarheim - Host…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
This week Erik and Kamran talk about Vite (Vight? Veet?), what it's good for, how it works, and its status as the "go-to" tool for frontend tooling. (04:21) - This Week in TypeScript: TS 5.8 Beta (11:02) - This Week in TypeScript: Ruck 9 Released (12:39) - This Week in TypeScript: Type Stripping in the Browser (14:45) - Community Highlight: Deno and Qwik Video (15:52) - Community Highlight: Zig, TypeScript, and WASM by David Bushell (16:49) - New Library Watch: tsc-extra (17:24) - New Library Watch: typemap and typebox (18:23) - Vite Overview (22:01) - Vite: Getting Started (22:53) - Vite: build and preview (23:34) - Vite: How Does It Work? (26:57) - Vite: Support for Libraries and Frameworks (28:04) - Vite 6.0: Environments API (30:27) - Vite 6.0: Support for Additional HTML Asset References (31:28) - Vite: Testing with Vitest (32:48) - Vite Gripes and Gotchas (33:52) - Vite Gripes: Dev and Prod Build Inconsistencies (35:14) - Vite Gotcha: Forgetting to Set a URL Base (35:49) - Vite Gotcha: Targeting Legacy Browsers (38:30) - Vite Gripes: npm linking (41:43) - Vite's Future: What Are We Excited About? (44:12) - Secrets of the Handbook: Type Guards and Predicates (47:27) - Cool Stuff: Write Typesafe Emails with React.email (49:51) - Cool Yet Questionable Stuff: Custom Type Errors When Working With Generics Week of January 27 News: TS 5.8 Beta Released News: Ruck 9 , a Deno web framework News: Guy Bedford releases es-module-shims@2.0 , allowing type stripping in the browser Community: Qwik and Deno (📸 Video) Community: Benchmarking Zig, TS and WASM by David Bushell (✍️ Blog Post) New Libraries tsc-extra Static analysis tool, type checking only, no code generation or compiling Useful for documentation or lower-level TS tools Typemap is like a Zod alternative, built for TypeBox “It offers a common TypeScript syntax for type construction, a runtime compiler for high-performance validation and type translation from one library to another.” Vite Deep Dive Homepage Evan You's State of Vite 2023 Keynote (📸 Video) Why Use Vite? Vite 6 Updates Sapphi-Red's Increasing Vite's Potential With the Environment API (✍️ Blog Post) Vite's browser compatibility Vite's future, bundling with Rolldown Links Handbook: Type Guards and Predicates Send typesafe emails with React.email Better string literal errors (📸 Video) 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 Kamran Ayub - Host Erik Onarheim - Host…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
This week Erik and Kamran make poor dad jokes, talk about Deno, and tour its ecosystem. If you're new to Deno, this will be a great introduction! (00:00) - We Don't Talk About Deno-no-no-no | Ep 3 (06:54) - This Week in TypeScript: Bun 1.2 Released (10:54) - This Week in TypeScript: 5.8's ErasableSyntaxOnly Flag (14:57) - This Week in TypeScript: Tailwind 4 Released (16:26) - This Week in TypeScript: Vitest 3 Released (17:17) - Errors and Corrections (18:46) - Deep Dive Into Deno (22:19) - Deno's Integrated CLI (23:50) - Deno CLI: deno run (24:28) - Deno CLI: deno add, install, remove, uninstall (25:01) - Deno CLI: deno task (26:19) - Deno CLI: deno test (27:18) - Deno CLI: deno fmt, deno lint, and deno check (28:15) - Deno CLI: deno serve (29:26) - Deno CLI: deno doc (30:07) - Deno CLI: deno bench (31:24) - Deno's Standard Library (33:21) - Deno CLI: deno compile (36:24) - Deno's Performance (37:32) - What is Deno Fresh? (38:17) - What is JSR? (39:43) - What is Deno Deploy? (40:38) - Moving from Node to Deno as a Developer (45:48) - Deno CLI: deno upgrade (47:13) - What Are We Excited About In the Future With Deno (48:13) - Secrets of the Handbook: TSConfig's extendedDiagnostic (50:12) - Cool Stuff: Serve a Folder in a Single Deno Command (50:44) - Cool Stuff: Flappy Bird Clone in Deno Compile News Bun 1.2 released Matt Pocock's take on erasableSyntaxOnly TC39 Types as Comments proposal Tailwind 4 released Vitest 3 released Deno Deep Dive Deno’s 2024 in review blog post Rusty v8 -- Rust bindings for V8 Deno CLI docs Performance Deno benchmark stats Denosaurs benchmarks AWS Lambda cold-starts Deno Fresh JSR Deno Deploy Kamran's Advent of Code 2024 repo using Deno Links Learn Vim’s keyboard shortcuts with Vim Adventures Minnesota's Art Shanty Projects during the winter Secrets of the Handbook: TSConfig – extendedDiagnostics Alias to serve a folder using a single Deno command like npx serve (h/t Kamran ) Deno Compile video with Flappy Bird 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 Kamran Ayub - Host Erik Onarheim - Host…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
In this episode, Kamran and Erik discuss the newly released TypeScript support with Node 23.6 and its implications. What's supported? What's not supported? And how does it differ from Bun or Deno? (00:00) - Ep 2 - Node 23 Gets TypeScript Support (00:05) - Introduction (04:04) - TypeScript News and Announcements (10:27) - A Closer Look at Type Stripping for Node 23 (22:56) - Differences Between Node 23 and Deno 2 (30:22) - Cool TypeScript Stuff News Everything You Need to Know About Node.js Type Stripping by Marco Ippolito Node 23.6.0 Release Notes -- The one with TypeScript support Docs: Node 23 “Modules: TypeScript” Node's new built-in support for TypeScript by Dr. Axel Rauschmayer Native Typescript support coming to Eleventy by Zach Leatherman ( PR ) ESLint 9.18 – Zero-config TypeScript support by Andrey Sitnik TypeScript 5.8: Erasable Syntax Only PSA: Create React App doesn’t work with React 19 , use Vite! Errata 19:11 -- We incorrectly assumed that TSC is used for the transpilation in Node 23, but that's not true. SWC still handles the transpilation (if the flag is used) so Node's TypeScript support does not rely on TSC at all. Reported by: Marco Ippolito Cool Stuff Jiti : A Node.js package for ESM and TypeScript support Example of `satisfies never` with switch statements by Cecile Muller, Bluesky What is the “satisfies” type constraint? By Matt Pocock Dockview – npm package for a TypeScript native window manager Using “as const” for config typing by Matt Pocock 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 Kamran Ayub - Host Erik Onarheim - Host…
T
TypeScript.fm - The Friendly Show for TypeScript Developers
In the inaugural episode of TypeScript.fm, the two fools introduce themselves, share their "origin stories," and share plans for the podcast. Briefly covered in the news: Vite 6, Deno 2's expansion of the ecosystem, Node 23's new TypeScript support, and the latest Excalibur.js 0.30.0 release. (00:00) - Ep 1 - Two TypeScript Fools, One Podcast (00:12) - Introduction (21:31) - News Segment (29:38) - TypeScript Tricks Segment News Vite 6 is out! Check out the new Environments API. Deno 2.1 was released in November -- Node.js compatibility, npm packages, WebAssembly Node 23 support for TypeScrip t (via Matt Pocock) Excalibur.js v0.30.0 - Performance improvements, GPU particle acceleration, brand new Excalibird tutorial, and more Links StackOverflow 2024 Survey – TypeScript is #5 in Programming Languages Zod - TypeScript-first schema validation QuickJS -- Embeddable JavaScript engine (like Lua for C) Nivo -- Charting library with TypeScript support 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 Kamran Ayub - Host Erik Onarheim - Host…
ברוכים הבאים אל Player FM!
Player FM סורק את האינטרנט עבור פודקאסטים באיכות גבוהה בשבילכם כדי שתהנו מהם כרגע. זה יישום הפודקאסט הטוב ביותר והוא עובד על אנדרואיד, iPhone ואינטרנט. הירשמו לסנכרון מנויים במכשירים שונים.