Hello JavaScript Enthusiasts!
Welcome to a new edition of "This Week in JavaScript"!
A lot happened this week, from new TC39 Proposals and Deno’s built-in upgrades to ESLint’s evolution, plus a look at what’s next for JavaScript.
Plus, we’ll check out some of the newest developer tools too!
TC39 Advances 3 Major Proposals to Stage 4
TC39 has moved 3 significant proposals to Stage 4, which means they are officially becoming part of the ECMAScript standard!
Here’s what’s changing:
- Float16Array: Ideal for performance-critical apps, especially those involving GPU operations. Float16Array optimizes memory usage while preserving precision.
- Redeclarable Global Eval Variables: This simplifies the process of redeclaring variables in global eval blocks, reducing potential bugs.
- RegExp Escaping: Cleaner, more error-resistant regex handling, allowing developers to write less prone-to-error regular expressions.
Deno 2.2 Brings Big Improvements
Deno continues to elevate the developer experience with Deno 2.2. This update introduces several exciting features:
- Built-in OpenTelemetry: Get deeper insights into logs and traces, making performance monitoring seamless.
- Linter Upgrades: A new plugin system and enhanced rules for React and JSX help you stay on top of best practices.
- Node.js Compatibility: Improved compatibility, alongside support for node:sqlite, and TypeScript 5.7.
- Smaller, Faster Compiles: Deno’s compile times are now faster than ever, and permission handling has been streamlined for easier development.
Interop 2025: A Leap for Browser Consistency
The annual Interop initiative continues, with Interop 2025 bringing together Google, Mozilla, Microsoft, and Apple to improve web feature consistency across browsers.
Key focus areas for 2025 include:
- Storage Access API: Enhanced cross-browser compatibility.
- New Pointer/Mouse Events: Smoother user interactions.
- JS/WASM Integration: Advancing the performance and capabilities of WebAssembly.
- Scrollend Event & URLPattern: New tools for developers to handle scrolling events and URLs more efficiently.
These changes will ensure a smoother, more reliable web experience for everyone, making cutting-edge web technologies more universally accessible.
ESLint Expands Beyond JavaScript
ESLint is stepping into the world of CSS with its new @eslint/css plugin! Now, you can lint your CSS code with the same precision as JavaScript.
Highlights:
- CSSTree Project: Powered by CSSTree, ESLint now applies rules for CSS, checking for duplicate imports, invalid properties, and more.
- Tolerant Parsing: Similar to browser behavior, ESLint mimics error recovery for custom CSS syntax and frameworks like Tailwind.
Let’s take a quick look at the latest tools making waves in the JavaScript world this week!
- React Native 0.78: With React 19 under the hood, this update enhances performance, streamlines updates, and brings better support for native integrations like Android Vector Drawables and iOS brownfield. For those upgrading from React 18, the migration guide will help you unlock these powerful new features.
- Nano ID 5.1: A secure, URL-friendly ID generator that’s just 118 bytes minified, making it extremely lightweight. It creates 21-character unique strings with hardware-generated randomness, making it perfect for applications requiring reliable ID generation.
- TypeScript 5.8 Release Candidate: Catch those tricky return type bugs with TypeScript 5.8! This release also includes the ability to require ESM files from CommonJS modules in Node.js 22 and a --module node18 flag for better compatibility with stripped-down environments.
- Mastra AI Framework: From the creators of Gatsby, Mastra is designed to build powerful AI agents with a modern JavaScript stack. Think of it as Next.js for AI—enhancing workflows and simplifying memory management for developers building AI-powered applications.
- Upfetch: A TypeScript library that extends the fetch API with type safety, schema validation, and automatic response parsing. It’s a lightweight, structured way to handle data-fetching with enhanced lifecycle hooks and error handling.
And that's it for the twenty-third issue of "This Week in JavaScript."
If you found these JavaScript updates useful, give this post an upvote to help others discover it. Don’t forget to share it with your fellow developers, and keep an eye out for more insights in the JavaScript world.
Until next time, keep coding and stay curious!