Microsoft/TypeScript

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

開放

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

 (2 則留言) (1 個反應) (0 位負責人)TypeScript (13,395 個分叉)batch import
Domain: LS: Completion ListsExperience EnhancementHelp WantedSuggestion

倉庫指標

星標
 (108,860 顆星)
PR 合併指標
 (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.

貢獻者指南