4

我尝试创建以下 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

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

4

1 回答 1

6

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

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
}

在此处输入图像描述

于 2016-06-09T07:14:52.647 回答