npm / svelte-check
svelte-check
What changed in svelte-check 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
2 breaking4 new APIs and options1 performance2 behavior and defaults4 tooling35 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initsvelte-check 448 changes
Breaking changes 2
Disallows using --tsgo together with --tsgo-experimental-api.
tsconfig errors are now reported when using this experimental API.
New APIs and options 4
Adds a --config option to svelte-check.
Adds svelte-check support for tsgo through an experimental API.
Adds the --incremental flag.
Adds the --tsgo flag.
Performance 1
Includes various optimizations to the AST walk.
Behavior and default changes 2
Props for +error.svelte are available with zero configuration.
Uses machine format when run by Claude Code.
Tooling 4
svelte-check can now read Svelte config from vite.config.js/ts.
Adds support for Svelte 5 declaration tags.
Adds support for Svelte config files with
.tsand.mtsextensions.Adds support for TypeScript 6.0.
Fixes and other changes 35
Modern CSS properties such as corner-shape are now recognised.
Default tsconfig include logic now aligns with tsc and tsserver.
Recognises the real script and style start tags when a matching token also appears inside the other tag.
Resolves symlinked packages when importing their .svelte files, avoiding duplicated types.
Reports a failed TypeScript compiler process and exits non-zero when a run fails.
The cache directory is ignored in watch mode with --tsgo or --incremental.
Elements from Svelte's svelte-html.d.ts are typed with --tsgo or --incremental, as in the language server.
Checks all files with --tsgo or --incremental when tsconfig has no include.
Handles SvelteKit 3 configs merged at the top level.
No longer logs an error for Vite configs without a Svelte plugin.
Prevents a silent error during start-up caused by an unhandled promise.
Adds support for TypeScript 7 Stable when installed under an npm alias.
The tsgo binary path is resolved using package.json.
Correctly parses the --tsgo-experimental-api flag.
Loads the ESM version of Vite.
Stops excluding workspaces under dot-prefixed ancestors.
Props named
slotare now properly handled inside Svelte 5 snippets.Flush stdout and stderr before exit.
Report diagnostics in tsconfig.json.
Prevents an error caused by an escape sequence in an attribute.
Resolves Svelte files with NodeNext when using --incremental or tsgo.
Prevents the config loading message from appearing when running svelte-check in incremental mode.
Async kit handler return types now use Promise<Response>, correcting their type declaration.
Resolves Svelte files under path aliases in --incremental/tsgo mode.
Detection of the lang="ts" attribute is more robust.
Passes the filename to warningFilter.
Respect @ts-ignore and similar comments within tags.
Shims are now resolved correctly when using --incremental/tsgo mode.
Generated tsconfig.json now includes references in --incremental/tsgo mode.
Handles relative imports that reach outside the working directory when using these flags.
Supports SvelteKit zero types when running svelte-check with --incremental.
Machine output is properly used by default for Claude Code.
The file watcher ignores Unix domain sockets to prevent crashes.
Types and snippets referencing $store are no longer hoisted.
Ensures the await-block type is preserved in the latest Svelte version.