microsoft / microsoft/TypeScript

Specialized error message when too new a lib is provided

Open
#60,050 0 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Awaiting More Feedback Suggestion
Dominant language
Go
Stars
111k
Forks
14.3k
Avg merge
2d 4h
Merged PRs (30d)
132

Description

🔍 Search Terms

lib es2024 es2025 esnext

✅ Viability Checklist
⭐ Suggestion

If a lib value is provided that's an ES* version newer than what the current version of TypeScript supports, it'd be nice to have a specialized error message saying so. Today we just get the general "Argument for '--lib' option must be: ..." error with >=59 unique values to read through. It would be nice to explicitly indicate the lib is an ES* that's not yet supported. Maybe...

Error: npm error tsconfig.json(3,13): error TS####: Argument 'ES2027' for '--lib' option is a year not yet supported by TypeScript as of version 5.6.7.
📃 Motivating Example

In practice, if a single package in a monorepo falls out of date, then this error is likely to occur. Having that specialized error can help speed up debugging & make it clear what's going wrong.

Example in the wild: https://github.com/eslint/js/pull/631 -> https://github.com/eslint/js/actions/runs/11017802958/job/30596589705?pr=631 -> https://github.com/eslint/js/pull/632

💻 Use Cases
  1. What do you want to use this for? - Purely for debugging incorrect TS setups.
  2. What shortcomings exist with current approaches? - The error is accurate, but not precise.
  3. What workarounds are you using in the meantime? - Remembering to check the ES year & TypeScript version every time this comes up.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the TypeScript compiler's --lib option handling and its existing diagnostic tests; compare the generic invalid-value path with the ES-year case. Done means an unsupported ES* year receives a dedicated diagnostic identifying it as newer than the supported TypeScript version, with coverage for the tsconfig.json scenario.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
compilers
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.