在Typescript中使用npm模块

时间:2016-03-30 12:48:52

标签: typescript npm

我想在Typescript项目中使用npm模块,但此模块没有任何打字或tsd。当我尝试使用import Module from 'module'时出现错误:Cannot find module 'module'.有没有办法解决它?

[编辑] 我的tsconfig.json

{
  "compilerOptions": {
    "target": "ES5",
    "moduleResolution": "node",
    "module": "commonjs",
    "noEmitOnError": true,
    "noImplicitAny": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "sourceRoot": "src",
    "outDir": "bld"
  },
  "exclude": [
    "bld"
  ]
}

3 个答案:

答案 0 :(得分:10)

我认为您的问题与导入模块有关

import Module from 'module'

而不是按照你的说法导出它。如果是这种情况,你可以回到普通的javascript并需要这样的模块:

var Module = require('module');

[编辑]

验证在tsconfig.json中,编译器选项中包含以下行:

"compilerOptions": { 
    "moduleResolution": "node",
    "module": "commonjs"
}

希望这有帮助。

答案 1 :(得分:2)

如果您不希望使用requires污染导入,可以按照以下方法进行操作。

您可以创建一个module.d.ts定义文件,其中包含以下内容

declare module Module {}

您的导入现在应该可以使用。

如果您想导入类似

的内容
import { abc } from 'module';

然后继续将以下内容添加到module.d.ts

declare module Module {
    export let abc: any
}

答案 2 :(得分:0)

例如: npm install numwords

然后添加了导入.ts文件: 从'num-words'导入*作为numwords;

然后的用法: console.log((numwords(5));