microsoft / microsoft/TypeScript
Preserve union type name within larger union
Open
Nobody has claimed this yet.
Domain: LS: Type Display
In Discussion
Suggestion
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 132
Description
TypeScript Version: 3.1.0-dev.20180731
Code
type Value =
| { kind: "number", n: number }
| { kind: "string", s: string };
function f(value: Value | undefined): void {}
f(undefined);
Expected behavior:
Quick info on f shows function f(value: Value | undefined): void
Actual behavior:
Quick info shows:
function f(value: {
kind: "number";
n: number;
} | {
kind: "string";
s: string;
} | undefined): void
Related Issues: #14662
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 by reproducing the TypeScript 3.1.0-dev.20180731 example and compare quick info for the named union used directly versus inside a larger union. Review related issue #14662 for context; done means quick info preserves Value | undefined instead of expanding Value into its object members.
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