Oxlint Type-Aware PreviewWe're thrilled to announce type-aware linting in oxlint!The long-awaited no-floating-promises and related rules are here.This preview release aims to engage with the community for collaboration and discussion by documenting our decision process and technical details.Quick Start If oxlint is already configured, install oxlint-tsgolint and run oxlint with the --type-aware flag:bashpnpm add -D oxlint-tsgolint@latest pnpm dlx oxlint --type-awareIf oxlint is not configured but you want to see no-floating-promises in action:bashpnpm add -D oxlint-tsgolint@latest pnpm dlx oxlint@latest --type-aware -A all -D typescript/no-floating-promisesWe expect to see, for example:js × typescript-eslint(no-floating-promises): Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator. ╭─[packages/rolldown/src/api/watch/watcher.ts:30:7] 29 │ await this.close(); 30 │ originClose(); · ────────────── 31 │ }; ╰────Please visit our usage guide for more configuration options.Performance Our testing shows that repositories which previously took a minute to run with typescript-eslint now complete in less than 10 seconds.This is achieved by leveraging typescript-go, the 10x faster TypeScript written in Go.Using projects from oxlint-ecosystem-ci:ProjectFilesTimenapi-rs1441.0spreact2452.7srolldown3141.5sbluesky11527.0sType-Aware Linting Please refer to Rust-Based JavaScript Linters: Fast, But No Typed Linting Right Now to understand the current status of type-aware linting in the ecosystem.Technical Details The core of this new functionality is oxc-project/tsgolint.The tsgolint project was initially prototyped as typescript-eslint/tsgolint. However, the typescript-eslint team decided not to allocate development resources to this prototype, as they plan to continue their work on typescript-eslint for typed linting with ESLint.@boshen reached out to @auvred for a forke...
First seen: 2025-08-20 01:03
Last seen: 2025-08-20 03:03