Skip to content

0.23.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 04:09
Immutable release. Only release title and notes can be modified.
fc38431

0.23.0

tsrs 0.23.0 targets TypeScript 7.1 beta, with package version 0.23.0-ts7.1.0-beta for tsrs and @tsrs/wasm.
The TypeScript source pin remains microsoft/TypeScript@3e9236361fa9.

Whole-program type checking in both modes

oxlint --type-aware --type-check now checks the whole program for each tsconfig selected by Oxlint's files,
in both default and fast (TSRS_FAST=1) modes (#930).

  • Unselected, ignored and generated program files can report type errors. skipLibCheck still controls
    declaration checking; global diagnostics appear on the tsconfig. Oxlint ignores still control lint rules.
  • Files sent by Oxlint that no discovered tsconfig includes are checked in an inferred program with tsgolint's
    fallback options, restoring their type errors in fast mode.
  • Shared files report errors once: selected files use their mapped program; other files use the first selected
    configured program eligible to check them.
  • Config discovery follows transitive project references, including custom-named configs, and preserves inherited
    compiler options (#934).

Selecting a clean file can now fail because another file in its program has a type error. Checking more files can
add work, especially with overlapping configs.

Other changes

  • Speeds up cross-project references and initial auto-import completions in the language server (#936).
  • Fixes memory growth across repeated full program rebuilds (#895).
  • no-misused-promises avoids expensive type expansion for generic callbacks and overloads, and skips parameters
    without corresponding arguments (#907, #923).
  • prefer-optional-chain reports optional-chain opportunities inside JSX callbacks (#910, #926).
  • no-unnecessary-condition fixes false positives for unresolved conditional types such as Awaited<T>, while
    retaining reports when constraints prove a condition always truthy or never nullish (#911).
  • no-unsafe-assignment fixes false positives for quoted, numeric and computed object properties contextually
    typed as unknown, and reports any assignments to JSX props (#914, #924).
  • prefer-includes handles escaped backslashes in regex patterns and preserves escaping in .includes() fixes (#918).
  • no-unnecessary-type-assertion reports assertions that may supply a generic call's inferred type arguments,
    recommending explicit type arguments without an automatic removal fix (#925).

Packages remain available for macOS arm64/x64, Linux x64/arm64 (glibc and musl), and Windows x64. Windows ARM64
(#903) awaits npm setup and a passing native PGO release dry run.

See the compatibility table for supported capabilities and known limitations.

Full changelog