类模块声明文件(TypeScript)
我使用一个节点模块,这是找不到的types,并不存在definelytyped。
模块的基本使用是:
import * as SomeClass from 'some-module'; var someObject = new SomeClass("some string"); someObject.someMethod();
正如你所看到的,这个模块导出一个类作为它的默认值。 我还没有想出如何编写它的声明文件。
这是我设法做的最好的:
declare module 'some-module' { export default class SomeClass { constructor (someArg: string); someMethod(): void; } }
顺便说一句,它确实工作JavaScriptly。 只有TypeScript困扰我。
任何想法如何解决?
对于声明,你需要这样做:
declare module 'some-module' { class SomeClass { constructor (someArg: string); someMethod(): void; } namespace SomeClass {} export = SomeClass; }
更新:感谢Blake Embrey指出,hack namespace SomeClass {}
是需要得到这个工作。 有关更多详细信息,请参阅https://github.com/Microsoft/TypeScript/issues/5073 。
如果你只是想避免TypeScript错误,不要担心ItelliSense只是在你的文件开始时声明你的类库,例如:
declare var SomeClass: any;