microsoft / microsoft/TypeScript
Mapped types shouldn't transform any type
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 132
Description
@ahejlsberg Can you remember #29793 and this?
TypeScript Version: 3.7.x-dev.20200101
Search Terms:
Code
type M<T> = { [P in keyof T]: T[P] };
type a = M<any>;
Expected behavior:
Type a is any.
Actual behavior:
Type a is { [x: string]: any; }.
Playground Link: https://www.typescriptlang.org/play/index.html?ts=3.8.0-dev.20200101&ssl=1&ssc=1&pln=30&pc=1#code/C4TwDgpgBAsgPAFQHxQLxQN5QNoAUoCWAdlANYQgD2AZlAgLoBcde9UAvgNwBQokUAQzSw4AoiCScgA
Related Issues: #29793
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 mapped type example in the issue and reproduce it in the linked TypeScript Playground using the noted 3.8 nightly version. Read related issue #29793 for prior context; done means M<any> is reported as any rather than { [x: string]: any; }.
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
- Mostly clear
- Newbie friendliness
- 35/100