Microsoft/TypeScript

Missing IntelliSense suggestions in a partial mapped generic argument

Open

#47,518 opened on Jan 19, 2022

View on GitHub
 (1 comment) (1 reaction) (0 assignees)TypeScript (6,726 forks)batch import
Domain: LS: Completion ListsExperience EnhancementHelp WantedSuggestion

Repository metrics

Stars
 (48,455 stars)
PR merge metrics
 (Avg merge 6d 17h) (9 merged PRs in 30d)

Description

Bug Report

The issue I'm facing is missing IntelliSense suggestions inside the inline object argument of a function which accepts a generic extending the partial of a mapped type. (Wow, that sentence was a doozy, no worries code sample below)

🔎 Search Terms

IntelliSense, Generic, Partial, Optional , Mapped, Function, Parameter, Argument, Object

🕗 Version & Regression Information

I'm using 4.5.4 Seems to be working in 4.3.5 on the playground.

⏯ Playground Link

Playground link with relevant code

💻 Code

type Original = {
    prop1: true,
    prop2: string
}

type Mapped = {[Prop in keyof Original as `get${Capitalize<string & Prop>}`]: Original[Prop]};

declare function foo<T extends Partial<Mapped>>(options: T): void;

foo({
/* cursor */
});

🙁 Actual behavior

  1. No (relevant) suggestion on CTRL + SPACE
  2. Suggestion on typing correct prefix ("get") of either parameter
  3. After setting said parameter correctly neither CTRL + SPACE nor typing gives another suggestion

🙂 Expected behavior

CTRL + SPACE (hopefully) would always give suggestion for allowed/fitting/legal properties

Contributor guide