You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/blog/2025-12-01-type-aware-alpha.md
+80-3Lines changed: 80 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,11 +14,54 @@ We're excited to announce the alpha release of type-aware linting in Oxlint!
14
14
15
15
## Overview
16
16
17
-
[Add overview content here]
17
+
Following our [technical preview in August](/blog/2025-08-17-oxlint-type-aware), we're excited to announce that type-aware linting has reached alpha status. This milestone brings significant improvements in stability, configurability, and rule coverage.
18
+
19
+
Type-aware linting enables powerful rules like `no-floating-promises`, `no-misused-promises`, and `await-thenable` that catch bugs by understanding TypeScript's type system. With N type-aware rules now available, you can catch entire categories of runtime errors before they happen.
20
+
21
+
The alpha release addresses the major limitations from the technical preview:
-**Disable comment support** - Use `eslint-disable` comments to control type-aware rules
25
+
-**IDE support** - Type-aware linting works in VSCode and other supported editors
26
+
-**Improved stability** - Many crashes and edge cases have been fixed
27
+
28
+
While we're still working on performance for very large monorepos and some advanced rules, the alpha is ready for testing in production codebases.
18
29
19
30
## Quick Start
20
31
21
-
[Add quick start instructions here]
32
+
Install `oxlint` and `oxlint-tsgolint`, then run with the `--type-aware` flag:
33
+
34
+
::: code-group
35
+
36
+
```sh [npm]
37
+
npm add -D oxlint oxlint-tsgolint@latest
38
+
npx oxlint --type-aware
39
+
```
40
+
41
+
```sh [pnpm]
42
+
pnpm add -D oxlint oxlint-tsgolint@latest
43
+
pnpm oxlint --type-aware
44
+
```
45
+
46
+
```sh [yarn]
47
+
yarn add -D oxlint oxlint-tsgolint@latest
48
+
yarn oxlint --type-aware
49
+
```
50
+
51
+
```sh [bun]
52
+
bun add -D oxlint oxlint-tsgolint@latest
53
+
bunx oxlint --type-aware
54
+
```
55
+
56
+
:::
57
+
58
+
To try a specific type-aware rule without other configuration:
59
+
60
+
```bash
61
+
npx oxlint --type-aware -A all -D typescript/no-floating-promises
62
+
```
63
+
64
+
For more configuration options, see our [usage guide](/docs/guide/usage/linter/type-aware).
22
65
23
66
## What's New
24
67
@@ -30,7 +73,41 @@ We're excited to announce the alpha release of type-aware linting in Oxlint!
30
73
31
74
## Technical Details
32
75
33
-
[Add technical implementation details]
76
+
### Architecture
77
+
78
+
Type-aware linting in Oxlint uses a unique two-binary architecture:
79
+
80
+
```
81
+
oxlint CLI (Rust)
82
+
├─ Handles file traversal, ignore logic, and diagnostics
83
+
├─ Passes paths and configuration to tsgolint
84
+
└─ Formats and displays results
85
+
86
+
tsgolint (Go)
87
+
├─ Uses typescript-go for type checking
88
+
├─ Executes type-aware rules
89
+
└─ Returns structured diagnostics
90
+
```
91
+
92
+
This design keeps Oxlint's core fast while leveraging TypeScript's type system through typescript-go. The frontend-backend separation means `oxlint` controls the user experience while `tsgolint` handles the heavy lifting of type analysis.
93
+
94
+
### TypeScript Compatibility
95
+
96
+
`tsgolint` is based on [typescript-go](https://github.com/microsoft/typescript-go), Microsoft's TypeScript v7.0 rewrite in Go, not the original TypeScript compiler.
97
+
98
+
**Important compatibility notes:**
99
+
100
+
- Only TypeScript 7.0+ features are supported
101
+
- Pre-7.0 syntax and deprecated features are not supported
102
+
- Legacy `tsconfig.json` options like `baseUrl` have been removed in TypeScript 7.0
103
+
104
+
If you're using deprecated features from TypeScript 6.0 or earlier, you'll need to migrate your codebase first. See the [TypeScript migration guide](https://github.com/microsoft/TypeScript/issues/62508#issuecomment-3348649259) for help updating deprecated tsconfig options.
105
+
106
+
### Implementation Details
107
+
108
+
`tsgolint` doesn't use typescript-go's public APIs. Instead, it compiles typescript-go by [shimming](https://github.com/oxc-project/tsgolint/tree/main/shim) internal APIs to make them accessible. We actively track typescript-go updates and fix breaking changes as needed.
109
+
110
+
Our typescript-go fork is synced regularly using renovatebot, ensuring we stay current with the latest improvements and fixes.
0 commit comments