如何在typescript中声明一个类似于类的外部库

时间:2016-06-09 07:12:10

标签: typescript typescript-typings

我尝试创建以下d.ts文件,但创建的元素的类型为any

declare module 'jszip' {
  interface JSZip {
    (): void
    file ( name: string, data: string, opts: any ): void
    folder ( name: string ): JSZip
  }
  const dummy: JSZip
  export = dummy
}

使用时:

import * as JSZip from 'jszip'

const zip = new JSZip ()
// zip type === any

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

您必须将模块声明为构造函数声明的接口。

declare module 'jszip' {
  interface JSZipInterface {
    (): void
    file ( name: string, data: string, opts: any ): void
    folder ( name: string ): JSZipInterface
  }

  interface JSZipConstructor {
    new (): JSZipInterface
  }


  const module: JSZipConstructor
  export = module
}

enter image description here