Skip to content

Support TypeScript 4.9 satisfies operator #42

Closed
@karlhorky

Description

@karlhorky

Hi @lukeed 👋 Hope you are well.

It would be great to be able to use the TypeScript 4.9 satisfies operator!

However, currently, tsm throws an error when using satisfies:

import {AType} from '../a';

const a = 'abc' satisfies AType; // 💥 Expected ";" but found "satisfies"

Full error:

Error: R] Expected ";" but found "satisfies"

    /home/runner/work/courses/courses/packages/database/scripts/databaseFixtures/courseModules.ts:879:11:
      879 │ ] as const satisfies readonly CourseModule[];
          │            ~~~~~~~~~
          ╵            ;

/home/runner/work/courses/courses/node_modules/tsm/node_modules/esbuild/lib/main.js:1605
  let error = new Error(`${text}${summary}`);
              ^

This is supported in esbuild@^0.15.13


Workaround

Use Yarn/pnpm Resolutions (or npm Overrides) to force the version in package.json:

{
  "resolutions": {
    "**/tsm/esbuild": "0.15.14"
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions