2

我试图用打字机编写一个插件。我声明如下界面:构造函数重载的打字稿intellisense问题

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的(选项?:选项)

我认为它应该是这样的:

MyClass的(选项?:{选项1:字符串,选项2:数...})

有人知道为什么发生这种情况,以及如何使智能感知按预期工作?

回答

1

TypeScript跟踪这个问题。但是这种方法的一个问题是,当选项很长时,它无论如何都不能给你完整的细节。

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

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

实际上,它将列出的选项属性option1option2等与智能感知。

+0

Thx! [Ctrl +空格]得到我想要的。希望这个问题稍后得到解决。 – Jin