我想在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"
]
}
答案 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));