vscode Typescript:对象函数属性的自动补全方式取决于在类型定义中使用的符号,

yqlxgs2m  于 6个月前  发布在  Vscode
关注(0)|答案(1)|浏览(167)

当所有扩展都被禁用时,这个问题是否会发生?:是的
版本:1.86.1(用户设置)
提交:31c37ee
日期:2024-02-07T09:08:20.941Z
Electron:27.2.3
ElectronBuildId:26495564
Chromium:118.0.5993.159
Node.js:18.17.1
V8:11.8.172.18-electron.0
OS:Windows_NT x64 10.0.19045
重现步骤:
定义类型如下,并在使用typeof和括号属性访问时自动完成该属性。对于函数属性,根据使用的符号,自动完成方式会有所不同:

const foo = {
    // object property defined with function property notation
    property: (a: string, b: number, c: boolean) => void,
    // object property defined with method notation
    method(a: string, b: number, c: boolean): void;
}

type PropertyArgs = Parameters<typeof foo['']> // ✅ auto completes property just name correctly

type MethodArgs = Parameters<typeof foo['']> // ❌ auto completes property name with arguments

演示:

预期结果

无论属性类型如何定义,自动完成都应该只在上述情况下使用typeof时完成属性名称。

xzv2uavs

xzv2uavs1#

仅在 "typescript.suggest.completeFunctionCalls": true 被启用时发生

相关问题