如何为导出函数的节点模块编写打字稿定义文件?

道格

考虑一下,对于toml节点模块,我可以简单地使用:

// toml.d.ts
declare module TOML {
    export function parse(value:string):any;
}

declare module "toml" {
    export = TOML;
}

然后:

/// <reference path="../../../../../defs/toml/toml.d.ts"/>
import toml = require('toml');
toml.parse(...);

但是,仅导出单个功能(例如'glob'(https://github.com/isaacs/node-glob))的节点模块呢

该模块的节点用法为:

var glob = require("glob")
glob("*.js", {}, callback(err, files) { ... });

您天真地希望您可以这样做:

// glob.d.ts
declare function globs(paths:string, options:any, callback:{(err:any, files:string[]):void;

...但是由于打字稿的'import'语义有些奇怪,因此看来您只能使用'import .. = require()'语句作为别名模块尝试致电:

/// <reference path="../../../../../defs/glob/glob.d.ts"/>
import blog = require('glob');

结果是:

error TS2072: Module cannot be aliased to a non-module type.

那么,您将如何为此编写定义文件?

注意 请注意,这是针对使用节点commonjs模块,而不是AMD模块。

...也可以,我知道您可以通过使用声明破坏类型系统来做到这一点,但我正在努力避免这种情况:

declare var require;
var glob = require('glob');
glob(...); 
巴萨拉特

使用export =

定义:

declare module 'glob' {
  function globs(paths: string, options: any, callback: (err: any, files: string[]) => void): any;
  export = globs;
}

用法(启用esModuleInterop):

import glob from 'glob';
glob("*.js", {}, (err, files) => { });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用打字稿编写节点模块?

来自分类Dev

如何使用打字稿编写节点模块?

来自分类Dev

如何编写打字稿模块定义,以便将模块依赖项导出为其成员?

来自分类Dev

如何使用打字稿文件导入/导出类型定义

来自分类Dev

如何使用打字稿编写marionettejs模块?

来自分类Dev

如何为Electron安装打字稿定义?

来自分类Dev

如何编写依赖于另一个定义文件的打字稿定义文件

来自分类Dev

如何为用打字稿编写的 npm 包指向索引文件

来自分类Dev

导出打字稿中的模块

来自分类Dev

如何在打字稿中为JavaScript文件编写定义文件?

来自分类Dev

打字稿:如何定义重载函数类型

来自分类Dev

不能要求从打字稿的NodeJS默认文件的导出函数

来自分类Dev

如何创建“外部模块”打字稿定义文件以包含在npm包中?

来自分类Dev

如何在打字稿中导出重载函数

来自分类Dev

从外部模块打字稿项目生成单个定义文件

来自分类常见问题

打字稿:如何为嵌套对象定义接口?

来自分类Dev

如何为微风实体生成打字稿接口/定义

来自分类Dev

打字稿:如何为通用类型定义对象键的类型

来自分类Dev

如何为React.Children.map定义打字稿

来自分类Dev

打字稿:如何为动态执行的函数提供参数

来自分类Dev

打字稿。如何在一个模块中导出两个类(在单独的文件中)?

来自分类Dev

如何为打字稿中的类使用单独的文件?

来自分类Dev

如何为打字稿中的类使用单独的文件?

来自分类Dev

打字稿:如何扩展现有的模块定义?

来自分类Dev

如何安装打字稿模块的其他定义?

来自分类Dev

如何编写打字稿可执行文件?

来自分类Dev

从外部节点模块导入打字稿

来自分类Dev

从外部节点模块导入打字稿

来自分类Dev

嵌套函数的打字稿定义

Related 相关文章

  1. 1

    如何使用打字稿编写节点模块?

  2. 2

    如何使用打字稿编写节点模块?

  3. 3

    如何编写打字稿模块定义,以便将模块依赖项导出为其成员?

  4. 4

    如何使用打字稿文件导入/导出类型定义

  5. 5

    如何使用打字稿编写marionettejs模块?

  6. 6

    如何为Electron安装打字稿定义?

  7. 7

    如何编写依赖于另一个定义文件的打字稿定义文件

  8. 8

    如何为用打字稿编写的 npm 包指向索引文件

  9. 9

    导出打字稿中的模块

  10. 10

    如何在打字稿中为JavaScript文件编写定义文件?

  11. 11

    打字稿:如何定义重载函数类型

  12. 12

    不能要求从打字稿的NodeJS默认文件的导出函数

  13. 13

    如何创建“外部模块”打字稿定义文件以包含在npm包中?

  14. 14

    如何在打字稿中导出重载函数

  15. 15

    从外部模块打字稿项目生成单个定义文件

  16. 16

    打字稿:如何为嵌套对象定义接口?

  17. 17

    如何为微风实体生成打字稿接口/定义

  18. 18

    打字稿:如何为通用类型定义对象键的类型

  19. 19

    如何为React.Children.map定义打字稿

  20. 20

    打字稿:如何为动态执行的函数提供参数

  21. 21

    打字稿。如何在一个模块中导出两个类(在单独的文件中)?

  22. 22

    如何为打字稿中的类使用单独的文件?

  23. 23

    如何为打字稿中的类使用单独的文件?

  24. 24

    打字稿:如何扩展现有的模块定义?

  25. 25

    如何安装打字稿模块的其他定义?

  26. 26

    如何编写打字稿可执行文件?

  27. 27

    从外部节点模块导入打字稿

  28. 28

    从外部节点模块导入打字稿

  29. 29

    嵌套函数的打字稿定义

热门标签

归档