gpt4 book ai didi

构造函数重载的 typescript 智能感知问题

转载 作者:搜寻专家 更新时间:2023-10-30 21:51:37 25 4
gpt4 key购买 nike

我正在尝试用 typescript 写一个插件。我这样声明了一个接口(interface):

interface Options {
options1: string,
options2: number,
options3: boolean,
...
}

而且,我将它用作这个导出类可能采用的选项并重载它:

export class MyClass {
constructor(public options: Options = {} as Options) {
// options which can be overload
let {
/* default options: */
option1 = 'option1',
option2 = 2,
option3 = true,
...
}: Options = options as Options;
// overload
this.options.option1 = option1;
this.options.option2 = option2;
this.options.option3 = option3;
}
}

最后我实例化了它。

const class1 = new MyClass({
...
})

我正在使用 vscode 作为我的编辑器。智能感知只给我这样的提示对我来说没有意义:

MyClass(options?: Options)

我觉得应该是这样的:

MyClass(options?: {options1: string, options2: number ... })

有人知道为什么会这样,以及如何使智能感知按预期工作?

最佳答案

TypeScript 跟踪此问题时存在问题。 But one issue with this approach is when the option is long, it does not give you the full detail anyway.

它现在实际上工作得很好。你可以做的是:

const class1 = new MyClass({
// [Ctrl+space] here
})

它实际上会使用 IntelliSense 列出选项属性 option1option2 等。

关于构造函数重载的 typescript 智能感知问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42756956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com