在TypeScript中用作环境模块

时间:2016-01-14 18:04:05

标签: typescript

我如何declare环境modulefunction

declare module "UUID" {
  (seed?: number): string;
}

↑不起作用。

4 个答案:

答案 0 :(得分:3)

如果需要在函数上指定属性,也可以使用声明合并。

var imei = window.MainActivity.getIMEI();

这些都不是推荐的,但在转换旧的js时是不可避免的。

答案 1 :(得分:2)

declare module "UUID" {
    function uuid(seed?: number): string;
    export = uuid;
}

这是一些文字,因为只有代码的答案会被标记为注意!

答案 2 :(得分:0)

来自mk。的回答,我不得不安排一些不同的东西让我的编译器满意:

declare module 'UUID' {
  namespace UUID {
    // ...
  }

  function UUID(seed?: number): string;

  export = UUID;
}

我必须说它看起来(有点)对我更加理智:)

答案 3 :(得分:0)

实际上,由于某种原因,直接导出function就像这里的其他答案对我来说似乎是失败的。在declare module里面,我发现我必须声明

  1. 可调用的界面
  2. 该接口类型的变量

然后我可以导出变量。例如,这应该可以工作(名称更改,如果有错字,请发表评论):

declare module 'UUID' {
  interface UuidFunc {
    (seed?: number): string;
  }
  const uuid:UuidFunc;
  exports = uuid;
}

错误

如果我尝试其他答案的建议,即:

declare module 'UUID' {
  function uuid(seed?:number):string;
  export = uuid;
}

并尝试使用此代码使用它,然后我得到一个错误:

// TS2497: Module ''UUID'' resolves to a non-module entity and cannot be imported using this construct
import * as uuid from 'UUID';