"调用目标不包含任何签名"用于调用super()而不包含打字文件

fwi*_*tra 7 typescript

我正在努力使Polymer 2.0与Typescript一起工作,并且在制作构造函数时会遇到问题,其中库(包括Polymer 2)不会暴露正确的打字文件.在最简单的情况下:

class MyView1 extends Polymer.Element {
    public static is = 'my-view1';

    constructor() {
        super(); // [ts] Call target does not contain any signature
    }
}
Run Code Online (Sandbox Code Playgroud)

为了使它在没有构造函数的情况下完全编译,我declare var Polymer: any;在一个主.d.ts文件中完成了一个.

现在,我有两个问题:

  1. 如何(如果有的话)我可以使用打字稿忽略这一点,并假设它可以调用一个超级构造函数?
  2. 如何(如果有的话)我声明一个包含超类签名的打字文件?我还没有找到正确的文档(以及我到目前为止遇到的各种用例).

Sar*_*ana 2

您可以扩展声明以在Element属性中包含构造函数:

declare var Polymer: {
    Element: {
        new ();
    }
};
Run Code Online (Sandbox Code Playgroud)

对于第二个问题,您可以将其移至*.d.ts文件中。请参阅有关创建声明文件的文档