astro check started crashing with Cannot read properties of undefined (reading 'fileExists'). The cause was typescript@7, the new Go-based native rewrite, which doesn’t expose ts.sys the way @astrojs/language-server expects. The fix isn’t a code change, it’s pinning the dependency back to a version the tooling actually supports:
$ pnpm add -D typescript@^6TypeScript 6 still uses the classic JS-based compiler, so it stays compatible with the language server, while TypeScript 7’s native rewrite doesn’t yet. The rule of thumb: when a tool crashes right after a major bump to one of its dependencies, check whether the surrounding tools have caught up before assuming the crash is your bug.