1

我安装了一个库node_modules/,我想要一个快速的 hack,所以我可以在 typescript 应用程序中使用它。在文件夹typings/modules中,我创建了一个包含模块名称和文件的index.d.ts文件夹。在那个文件里面我有

declare module "lib-name" {
  export default class Logger {
    constructor(namespace: string)
  }
}

我可以导入模块,但是当我尝试导入时let l = new Lib('namespace');出现错误cannot use 'with' an expression whose type lacks a call or construct signature

4

1 回答 1

1

我认为你不应该class在你的打字。这是您应该声明的接口合同。

此外,文档说新表达式需要new接口中的方法:https ://www.typescriptlang.org/docs/handbook/writing-declaration-files.html

尝试这样的事情也许:

declare module "lib-name" {
  interface Logger {
    new (namespace: string): Logger
  }

  export var Logger: Logger;
}
于 2016-07-10T12:58:06.640 回答