【问题标题】:requiring an npm module using typescript需要使用 typescript 的 npm 模块
【发布时间】:2016-08-02 19:31:43
【问题描述】:

我正在使用 typescript 开发一个新的 nodejs 5.10.1 项目。

我已经安装了 tsc 版本 1.8.9

我创建了一个包含以下配置文件的新项目:

package.json

{
  "name": "mdb-analyze",
  "version": "1.0.0",
  "description": "",
  "main": "mdb-analyze.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "command-line-args": "^2.1.6"
  }
}

tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es6",
        "noImplicitAny": false,
        "sourceMap": false
    },
    "exclude": [
        "node_modules"
    ]
}

typings.json

{
  "name": "mdb-analyze",
  "version": false,
  "dependencies": {}
}

这是我的主要 mdb-analyze.ts 文件:

import * as commandLineArgs from 'command-line-args';

var cli = commandLineArgs([
  { name: 'verbose', alias: 'v', type: Boolean },
  { name: 'fjso', alias:'f',type: String, multiple: true, defaultOption: true },
  { name: 'help',alias:'h',type:Boolean }
])

var params = cli.parse();
if (params.help || !params.fjso || params.fjso.length == 0) {
    console.info(cli.getUsage());
} else {

}

当我尝试使用 tsc 编译时,出现以下错误:

mdb-analyze.ts(5,34): error TS2307: Cannot find module 'command-line-args'.

welp 我被告知要使用打字来为我想要的模块加载打字稿定义。但搜索类型不显示此模块。我是打字稿的新手,对下一步该怎么做感到很困惑。

任何有关该问题的信息将不胜感激。

【问题讨论】:

    标签: node.js typescript tsc typescript1.8


    【解决方案1】:

    如果没有可用的类型,您可以编写自己的 d.ts 文件,其中包含必要的类型声明。

    有一些示例供您参考:linklink

    希望这会有所帮助。

    【讨论】:

    • 谢谢。创建 d.ts 文件后我在哪里放置它?流程是什么?
    • 我习惯于创建一个名为 manual_typings 的根文件夹并将我所有的自定义 d.ts 文件放在那里。无需额外步骤。
    • 在哪里可以找到有关如何创建自定义 d.ts 文件的信息?
    猜你喜欢
    • 2015-11-20
    • 2013-03-20
    • 1970-01-01
    • 2016-07-18
    • 2023-03-05
    • 2016-11-08
    • 2020-01-06
    • 2015-12-09
    相关资源
    最近更新 更多