TypeScript 语言服务不为具有计算属性名称的类型显示对象属性名称建议

dwbf0jvd  于 2022-10-29  发布在  TypeScript
关注(0)|答案(2)|浏览(143)

**类型脚本版本:**2.9.x
搜索词:

语言服务API,自动完成

代码

// 2.9.x - NOT WORKING autocomplete for enumKeyObject
// 2.8.x - WORKING BOTH

enum Keys {
    First = 'first',
    Second = 'second',
    Third = 'third',
}

type EnumKeyObject = {
    [Keys.First]: {
        [Keys.Second]: {
            [Keys.Third]: boolean;
        }
    }
}

type StringKeyObject = {
    first: {
        second: {
            third: boolean;
        }
    }
}

const enumKeyObject: EnumKeyObject = {
    first: {
        second: {
            third: true,
        }
    }
}
const stringKeyObject: StringKeyObject = {
    first: {
        second: {
            third: true,
        }
    }
}

enumKeyObject // autocomplete via '.' press NOT WORKING
stringKeyObject // autocomplete via '.' press WORKING

预期行为:

自动完成计算名称属性(enumKeyObject变量)。

实际行为:

计算名称属性的自动完成功能与早期版本的TypeScript(例如2.8.1)的功能不同。

Playground链接:

TypeScript 2.8游戏场
TypeScript 2.9游戏场

ffscu2ro

ffscu2ro1#

实际上,你确实在我们的nightly中得到了enumKeyObject的补全,但是听起来它应该是Keys.FirstKeys.Second,等等。

相关问题