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.

贡献者指南