构造函数重载的打字稿智能感知问题
typescript intellisense issue for constructor overload
我正在尝试用打字稿写一个插件。我这样声明了一个接口:
interface Options {
options1: string,
options2: number,
options3: boolean,
...
}
而且,我将它用作此导出 class 可能采用并重载它的选项:
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 列出选项属性 option1
、option2
等。
我正在尝试用打字稿写一个插件。我这样声明了一个接口:
interface Options {
options1: string,
options2: number,
options3: boolean,
...
}
而且,我将它用作此导出 class 可能采用并重载它的选项:
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 列出选项属性 option1
、option2
等。