Issue Nº 01 — October 15, 2026

@readmodelmag
MODEL

Follow MODEL on X @readmodelmag

Tools

TypeScript 7.1 beta, tested: it catches the import you forgot to label, and it moved the API

SummaryThe first feature release of the Go-based TypeScript compiler adds a stable API for tools and type rules for import attributes. We ran it on our own site and on small test projects next to 7.0.2 and 5.9.3. The fixes hold. If your tooling imported the 7.0 API, it breaks.

· MODEL Editors · 3 min read

Some links may be affiliate links. Disclosure

MODEL card: We tested it, TypeScript 7.1 beta versus 7.0.2 and 5.9.3 on an 8-core Linux box. Import of a .md file without with type text, old declare module star .md pattern: passes silently on all three. Same import with 7.1's declare module star with type text: error TS2307; 5.9.3 and 7.0.2 can't parse the declaration. Our Next.js site: 5.9.3 3.31 seconds, 7.0.2 0.41 seconds and 153 MB, 7.1 beta 0.43 seconds and 105 MB, zero errors on all. Blog's API snapshot example: before 1, after 0, before again 1, as documented. The catch: typescript/unstable/sync from 7.0.2 is gone in 7.1, ERR_PACKAGE_PATH_NOT_EXPORTED.
Our own test output, October 25, 2026. Illustration by MODEL. Original. Image source.

TypeScript 7.0, the rewrite of the TypeScript compiler in Go, shipped in the summer. Version 7.1 is its first feature release, and Microsoft put out the beta on October 20. You install it with npm install -D typescript@beta.

Two changes matter most if you build things. First, 7.1 ships an API that other tools can use to run the compiler: typescript/sync, a Promise-based typescript/async, and entry points for file systems and syntax trees. Second, TypeScript now understands import attributes in type declarations. That's the with { type: "text" } part of import readme from "./README.md" with { type: "text" }, which tells a runtime or bundler how to load a file.

The test. We installed TypeScript 5.9.3 (what our site uses), 7.0.2 (the current release) and 7.1.0-beta from npm on an 8-core Linux box with Node 20. We type-checked a copy of our own Next.js site five times with each, wrote small test projects for the import-attribute rules, and ran the blog's own API example. No editor, no AI model.

The forgotten attribute. The usual way to let TypeScript import a Markdown file is a declaration like declare module "*.md". With that, an import that leaves off with { type: "text" } passed with no error on all three versions, even though the runtime may load it differently or not at all. 7.1 lets you write declare module "*" with { type: "text" } instead. With that declaration, the same import failed with TS2307, "Cannot find module './README.md'", and the correct import came back typed as a string: assigning it to a number failed with TS2322. 5.9.3 and 7.0.2 can't read the new declaration at all; they stop with three syntax errors. One file of declarations covers every file type that uses type: "text".

Our site. All three versions found zero errors on the same 75 source files. 7.0.2 and 7.1 both took about 0.4 seconds (medians of 0.41 and 0.43), against 3.31 seconds on 5.9.3; that speedup came with 7.0, not 7.1. What 7.1 changed on our project is memory: TypeScript's own report said 105 MB on all five 7.1 runs, against 153 MB on all five 7.0.2 runs, about 31% less.

The API. We ran the blog's snapshot example, which type-checks an in-memory file, swaps in a fixed version and checks again. It printed what the blog says it should: one error before, zero after, and still one when asking the old snapshot again. The first check took 308 milliseconds in our one run.

The catch. 7.0.2 already shipped this API under paths marked typescript/unstable/*. 7.1 removes them. Importing typescript/unstable/sync on the 7.1 beta failed with ERR_PACKAGE_PATH_NOT_EXPORTED, so a tool built against 7.0 needs its imports changed before it runs. The new import-attribute declarations aren't built into TypeScript; you add them to your own project, and TypeScript doesn't check that the imported file exists. And it is a beta.

What we did not test. Source phase imports and WebAssembly, the new es2026 target and library methods, the async API, editor features, Windows and macOS, large monorepos, and compatibility with linters and other tools built on TypeScript.

The verdict. Try the beta in a branch if you import non-code files or build tools on the compiler. Add the attribute declarations to catch unlabeled imports. If anything you run imports typescript/unstable/*, move it to the new entry points before upgrading.

Disclosure: not sponsored. No affiliate links. MODEL has no relationship with Microsoft. Full test notes, commands and outputs are kept by MODEL Editors.

Sources

  1. Announcing TypeScript 7.1 Beta (Oct 20, 2026)

    Microsoft TypeScript blog

  2. TypeScript v7.1-beta release

    Microsoft (GitHub)

  3. typescript 7.1.0-beta

    npm

See the MODEL tool card: TypeScript 7.1 beta

FREE · EVERY WEEK

The top AI tools this week, tested.

Every week MODEL's editors pick the AI tools worth your time, try them hands-on, and tell you what's good, what's not, and who it's for. Free, in your inbox.

Free. Unsubscribe anytime. Our picks are editorial and can't be bought.

The weekly three is editorial. A subscription does not buy a place in it.