Microsoft/TypeScript

Services for non-homomorphic mapped type

Open

#25,607 opened on Jul 12, 2018

View on GitHub
 (0 comments) (3 reactions) (0 assignees)TypeScript (48,455 stars) (6,726 forks)batch import
Domain: LS: Symbol NavigationDomain: Mapped TypesExperience EnhancementHelp WantedSuggestion

Description

TypeScript Version: 3.0.0-dev.20180712

Code

interface I {
 a: number;
 b: number;
}
type J = { [K in "b"]: I[K] };
declare const j: J;
j.b; // Go-to-definition does not work

Expected behavior:

Since the type we're getting is I[K], the mapped property symbol should have a reference back to the corresponding property in I.

Actual behavior:

The mapped type creates an unrelated property symbol and services don't work.

Contributor guide

Services for non-homomorphic mapped type · Microsoft/TypeScript#25607 | Good First Issue