Microsoft/TypeScript

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

Open

#47,479 建立於 2022年1月17日

在 GitHub 查看
 (2 留言) (1 反應) (0 負責人)TypeScript (6,726 fork)batch import
Domain: LS: Completion ListsExperience EnhancementHelp WantedSuggestion

倉庫指標

Star
 (48,455 star)
PR 合併指標
 (平均合併 6天 17小時) (30 天內合併 9 個 PR)

描述

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.

貢獻者指南