我使用的 Node 模块不是通过打字找到的,并且在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;
}
}
顺便说一句,它确实可以 JavaScript 运行。只是 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了解更多详情。
关于javascript - 类模块的声明文件 (TypeScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980143/