microsoft / microsoft/TypeScript
[ID-Prep] Type of variable is widened in declaration with !strictNullChecks
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 117
Description
The [ID-prep] set of issues aligns Declaration Emit with the forthcoming Isolated Declarations feature.
🔎 Search Terms
const declaration widen
🕗 Version & Regression Information
- This is the behavior in every version I tried
⏯ Playground Link
💻 Code
declare function f3<T>(a: T, b: T): T;
const x3 = f3("abc", "def"); // "abc" | "def"
🙁 Actual behavior
x3 is emitted as declare const x3: string; in declaration files but it's actually "abc" | "def" in source
🙂 Expected behavior
x3 is emitted as declare const x3: "abc" | "def"
Additional information about the issue
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked TypeScript Playground reproduction and the declaration emit behavior described in the issue. Trace how the generic call's inferred literal union becomes the emitted declaration type; done means the declaration preserves "abc" | "def" instead of widening to string.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100