Skip to content

Type-check with the TypeScript 7 nightly and isolatedDeclarations - #201

Merged
NullVoxPopuli merged 4 commits into
universal-ember:mainfrom
NullVoxPopuli-ai-agent:nvp/ts7
Sep 22, 2026
Merged

NullVoxPopuli merged 4 commits into
universal-ember:mainfrom
NullVoxPopuli-ai-agent:nvp/ts7

Conversation

@NullVoxPopuli-ai-agent

@NullVoxPopuli-ai-agent NullVoxPopuli-ai-agent commented Sep 22, 2026 •

Copy link
Copy Markdown

tsc is now the TS 7.1 nightly (7.1.0-dev.20260922.1) in table, test-app and docs-app. table builds its declarations with isolatedDeclarations on.

Changes:

  • @typescript/native is the nightly and provides the tsc bin. typescript points at @typescript/typescript6, because typescript-eslint and TypeDoc need the JS API.
  • test-app and docs-app check .gts files through ember-content-mapper: tsc --noEmit --runExternalCode. baseUrl is gone, because TS 7 removed it.
  • table has isolatedDeclarations: true. Exported API now has explicit types. The rollup declarations step runs tsc --declaration.
  • The symbol-keyed fields on Table and BasePlugin moved to a merged interface. isolatedDeclarations cannot emit computed class members (TS9038).
  • @glint/template is 1.9.0 in every package, so that ember-tsc 1.11 and the packages share one copy.
  • TypeDoc 0.28.20, which supports TS 6.
  • The CI TypeScript matrix is now 5.6 to 6.0. @glint/ember-tsc 1.11 requires typescript >=5.6.0, so 5.5 is gone.
  • The matrix has a typescript@next entry. It installs the latest TS 7 nightly and runs tsc --noEmit --runExternalCode, because ember-tsc cannot run on TS 7.

The emitted .d.ts files match the output before this change, except for import style and the merged interfaces.

Checked locally:

  • pnpm lint: pass
  • test-app tests: 187 of 187 pass
  • build:docs-api and the docs-app production build: pass
  • The CI matrix step (ember-tsc --noEmit in test-app) with TypeScript 5.6, 5.8, 5.9 and 6.0: pass

Before the annotations, the nightly tsc panicked in declaration emit (Unhandled case in Node.Text: *ast.KeywordExpression). The current code does not hit that path.

🤖 Generated with Claude Code

NullVoxPopuli and others added 3 commits September 22, 2026 14:22
- `tsc` in table, test-app and docs-app is the TS 7.1 nightly
  (`@typescript/native`). `typescript` points at `@typescript/typescript6`
  for typescript-eslint and TypeDoc, which need the JS API.
- test-app and docs-app check .gts files through ember-content-mapper
  (`tsc --noEmit --runExternalCode`). `baseUrl` is gone, because TS 7
  removed it.
- table turns on isolatedDeclarations. Exported API now has explicit
  types. The rollup declarations step runs `tsc --declaration`.
- Symbol-keyed fields on Table and BasePlugin move to a merged
  interface, because isolatedDeclarations cannot emit computed class
  members.
- @glint/template 1.9.0 everywhere, so that ember-tsc 1.11 and the
  packages share one copy. TypeDoc 0.28.20 supports TS 6.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@glint/ember-tsc 1.11 requires typescript >=5.6.0, so 5.5 cannot
run it any more.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A bare typescript@6.0 keeps the @typescript/typescript6 alias in the
lockfile, and ember-tsc cannot find tsc inside that package.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
import type { Column, Table } from '../../index.ts';

export const forColumn = (column: Column<any>, key: string) => {
export const forColumn = (column: Column<any>, key: string): any => {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will probably need fixing in someway, or an ability to take a type arg (later PR)

The typescript@next entry type-checks test-app with tsc and
ember-content-mapper, because ember-tsc cannot run on TypeScript 7.
The Lint job checks the pinned nightly. This entry follows the newest one.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@NullVoxPopuli NullVoxPopuli added the enhancement New feature or request label Sep 22, 2026
@NullVoxPopuli
NullVoxPopuli merged commit 568eb3a into universal-ember:main Sep 22, 2026
15 of 16 checks passed
@github-actions github-actions Bot mentioned this pull request Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants