{"type":"rich","version":"1.0","provider_name":"Transistor","provider_url":"https://transistor.fm","author_name":"TypeScript.fm - The Friendly Show for TypeScript Developers","title":"State of TypeScript Linting 2025 | Joshua Goldberg | Ep 29B","html":"<iframe width=\"100%\" height=\"180\" frameborder=\"no\" scrolling=\"no\" seamless src=\"https://share.transistor.fm/e/6dba5159\"></iframe>","width":"100%","height":180,"duration":2513,"description":"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.ChaptersLinterstypescript-eslint (stable) – TypeScript, most type-aware lint rulesoxlint (stable) – Rust, no type-aware lint rulesBiome (stable) – Rust, limited type-aware lint rules in V2tsslint (stable) – TypeScript, integrates with tsserver, custom rules with TS compiler APItsl (new) – tsc plugin that ports a selection of typescript-eslint type-aware lint rulesDeno lint (stable) – Rust, subset of ESLint rules, no type-aware lint rulesFlint (unstable) – TypeScript, Josh’s fast, friendly linter, still in developmenttsgolint (prototype) – Go, proof-of-concept experimental TypeScript Native integrationResourcesLearn: Vanilla TypeScript ExperienceLearn: ASTs and typescript-eslintLearn: If I Wrote a Linter, Part 4: Summary Learn: TypedRocks Builds a Type-aware ESLint PluginDustinSpecker/awesome-eslint – a list of awesome ESLint plugins and resourcesJoshuaKGoldberg/create-typescript-app – pick and choose the rules you likeESLint now supports linting for Markdown and CSSJosh’s Favorite Rules and Plugins:typescript-eslint/no-floating-promises – to avoid non-awaited Promisestypescript-eslint/no-deprecated – to avoid calling deprecated APIseslint-plugin-regex – to catch ReDOS vulnerabilitieseslint-plugin-n – for Node.js projectseslint-plugin-jsdoc – for the “informative docs” ruleeslint-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 fileWhere to Find JoshJoshuaKGoldberg.comFlint DiscordJosh on BlueSkyJosh on FosstodonJosh on GitHubSponsored by Excalibur.jsExcalibur.js is the friendly TypeScript game engine for making 2D web games....","thumbnail_url":"https://img.transistorcdn.com/LUVFPtghCfQs9Z5cmq099b61B1Uvk41woCYRjlvHUak/rs:fill:0:0:1/w:400/h:400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS9jY2Ew/ZThkMTZkZGNiN2E2/Mzc1MmI5NWI0ZjU0/YjA3MS5wbmc.webp","thumbnail_width":300,"thumbnail_height":300}