JavaScript类的TypeScript定义文件,无需声明所有成员

JavaScript类的TypeScript定义文件,无需声明所有成员,typescript,Typescript,我想为一个大型JavaScript类创建一个typescript定义,而不添加它的所有成员,我希望它是“any”类型。例如: 集装箱表面d.ts: declare class ContainerSurface { } export = ContainerSurface; 只需使用该类并调用其上的任何成员,而无需“声明”,如: MyClass.ts: import ContainerSurface = require('ContainerSurface'); class MyClass ext

我想为一个大型JavaScript类创建一个typescript定义,而不添加它的所有成员,我希望它是“any”类型。例如:

集装箱表面d.ts:

declare class ContainerSurface {
}
export = ContainerSurface;
只需使用该类并调用其上的任何成员,而无需“声明”,如:

MyClass.ts:

import ContainerSurface = require('ContainerSurface');

class MyClass extends ContainerSurface {
    constructor(options) {
        super(options);
        var a: ContainerSurface({option: "test"});
        a.add("test");
    }
}

export = MyClass;

您可以通过以下方法实现这一点:

declare var ContainerSurface: any;

export = ContainerSurface;
这是我的过程中的第一步,因此您可以使用它作为起点逐步添加类型

第二步是松散地指定属性和方法:

declare class ContainerSurface {
    myMethod: any;
    myProperty: any;
}

export = ContainerSurface;

抓住任何快速的胜利,比如基本类型,只需添加你真正开始使用的东西。

如果你不打算给它一个接口,为什么要有一个类?这与TypeScript的功能大相径庭。如果您想使用javascript库(在我们的例子中是famo.us),但没有时间和知识为其生成.d.ts文件,并且需要使用TypeScript从javascript类继承,那么您需要这样做。。。相信我…这对我没用。。。我使用的是AMD模块,这可能是问题所在吗?它以我描述的方式为我工作,但是我必须包括我调用的所有函数。使用您的方法,我得到了错误:“super只能在派生类中引用,”“导出类的扩展”…“具有或正在使用私有名称”…。您不能扩展
任何
。如果你想使用继承,你必须提供更多的类型信息,但是你可以按照我链接的文章逐步做到这一点;但是,如果有一整套其他函数,但我不想声明它们(例如del()、prev()、next()),那么有没有办法做到这一点,或者我应该声明我实际使用的所有函数呢?您需要访问的每个属性都可以在类上声明为
any
,直到您准备好添加更精确的定义为止。i、 e.
myMethod:任何