为TypeScript声明节点模块,该模块在typings中不可用

时间:2016-06-06 21:25:36

标签: node.js typescript declaration command-line-args

我是TypeScript的新手,我正在尝试编写一个小的cli应用程序。

我想使用npm~command-line-args但它的定义不适用于typings所以我认为创建自己的定义有多难。事实证明它比我预期的要难。

所以我的目标是导出一个模块,它只公开一个函数,也许是一个小类型的声明。

到目前为止我试过这个:

declare module 'command-line-args' {
  export interface cliOptionDefinition {
    name: string,
    alias?: string,
    type: BooleanConstructor|StringConstructor|NumberConstructor,
    multiple?: Boolean,
    defaultOption?: any
  }

  export = function commandLineArgs <R> ( optionDefinitions: cliOptionDefinition[] ) {};
}

但是我得到了这个错误:
error TS1183: An implementation cannot be declared in ambient contexts.

2 个答案:

答案 0 :(得分:0)

的作用:

export function commandLineArgs <R> ( optionDefinitions: cliOptionDefinition[] );

以你期望的方式工作? (省略={}。如果您打算提供commandLineArgs的实现,那么您希望从非环境中导出它(删除declare等等,最好是外部的,模块的(或者,命名空间)。

答案 1 :(得分:0)

你应该看看Polymer项目(例如polymer-cli) - 他们使用带有Typescript的命令行参数..