Microsoft/TypeScript

String completions for `keyof T` not shown when an object literal `T` was provided in a prior argument

Open

#47.479 aperta il 17 gen 2022

Vedi su GitHub
 (2 commenti) (1 reazione) (0 assegnatari)TypeScript (6726 fork)batch import
Domain: LS: Completion ListsExperience EnhancementHelp WantedSuggestion

Metriche repository

Star
 (48.455 star)
Metriche merge PR
 (Merge medio 6g 17h) (9 PR mergiate in 30 g)

Descrizione

Bug Report

🔎 Search Terms

Incorrect suggestions

🕗 Version & Regression Information

This bug occurs in v4.5.4 and nightly version. (Possibly every version)

⏯ Playground Link

Playground link with relevant code

💻 Code

type Methods = {
    [key: string]: (param: {
        apple: 'apple'
    }) => any
}

function testFunc<M extends Methods>(options: {
    methods: M,
    keys: keyof M
}): void {}

testFunc({
    methods: {
        myMethod: (param) => {
            console.log(param.apple)
        }
    },
    keys: 
})

🙁 Actual behavior

When hovering the word "keys" in line 18, it shows its type is "myMethod". And when i start typing for its value, "myMethod" is not being suggested.

🙂 Expected behavior

"myMethod" should be suggested when typing the value in line 18.

Guida contributor