Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[api-extractor] Update TypeScript version from 5.4.2 to latest #5052

Open
jawj opened this issue Dec 18, 2024 · 7 comments
Open

[api-extractor] Update TypeScript version from 5.4.2 to latest #5052

jawj opened this issue Dec 18, 2024 · 7 comments
Assignees
Labels
priority The maintainers consider it to be an important issue. We should try to fix it soon. upgrade A component is outdated and needs to be upgraded

Comments

@jawj
Copy link

jawj commented Dec 18, 2024

Summary

I'm using the latest TypeScript version. When I run api-extractor, I see this:

Analysis will use the bundled TypeScript version 5.4.2
*** The target project appears to use TypeScript 5.7.2 which is newer than the bundled compiler engine; consider upgrading API Extractor.

I then get various errors related to the TypeScript version being out of date, such as:

Warning: node_modules/subtls/index.d.ts:207:49 - (TS2315) Type 'Uint8Array' is not generic.

I can point api-extractor to the 5.7.2 type definitions, but of course it doesn't fully understand these, because it's too old.

I note this in the docs:

If the issue is that your toolchain uses a newer compiler release than API Extractor's engine, please open a GitHub issue requesting to upgrade API Extractor's compiler. We try to stay as current as possible.

So here's the issue!

@ocavue
Copy link

ocavue commented Dec 27, 2024

I'm using the ${configDir} template variable in my tsconfig.json, which was added in TypeScript v5.5. api-extractor throws the following error:

Error: Error parsing tsconfig.json content: No inputs were found in config file 'tsconfig.json'. Specified 'include' paths were '["${configDir}src/**/*"]' and 'exclude' paths were '[]'.
    at CompilerState.create (/my-lib/@microsoft/api-extractor/lib/api/CompilerState.js:76:19)

I assume that this is because api-extractor is still using TypeScript v5.4.2.

@iclanton iclanton moved this from Needs triage to High priority in Bug Triage Jan 6, 2025
@iclanton iclanton added the help wanted If you're looking to contribute, this issue is a good place to start! label Jan 6, 2025
@iclanton
Copy link
Member

iclanton commented Jan 6, 2025

@octogonz - do you have some time to take a look at this?

@octogonz
Copy link
Collaborator

octogonz commented Jan 6, 2025

This is an important fix.

In this Zulip thread we investigated an error Error: Internal Error: Unable to follow symbol for "Record" whose root cause was an outdated TypeScript compiler:

Generally it is preferable to have "useProjectTypescriptVersion": false because it provides a consistent set of files, which is basically how your .d.ts files would be seen by a library consumer that is using an older compiler. It will only fail if your code uses new syntax that is not recognized by the older compiler. That is likely with .ts files, but much less likely with .d.ts files (which are intentionally designed to maximize compatibility). So I bet you had introduced this setting earlier when you were trying to compile .ts files, and now it is no longer needed.

That said, 5.4.2 is pretty old. We really should make a PR to upgrade API Ectractor's built-in compiler version. Often this is just a one-line fix (depending on how much they changed for the internal API's and language enhancements).

@octogonz
Copy link
Collaborator

octogonz commented Jan 6, 2025

Looks like @colinaaa had started work on that in PR #4815

@octogonz octogonz added priority The maintainers consider it to be an important issue. We should try to fix it soon. upgrade A component is outdated and needs to be upgraded and removed help wanted If you're looking to contribute, this issue is a good place to start! labels Jan 6, 2025
@octogonz octogonz self-assigned this Jan 6, 2025
@CosminCotulbea
Copy link

Any solution until will be fixed ? I can't publish a pacakge because of this error. Thanks.

@octogonz
Copy link
Collaborator

octogonz commented Jan 6, 2025

Working on it today

@octogonz
Copy link
Collaborator

octogonz commented Jan 7, 2025

I've updated PR #4815 to 5.7.2 and resolved the build issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority The maintainers consider it to be an important issue. We should try to fix it soon. upgrade A component is outdated and needs to be upgraded
Projects
Status: High priority
Development

No branches or pull requests

5 participants