我尝试使用hammerjs的类型定义。为:
import Hammer from 'hammerjs';
但是我收到了这个错误:
错误TS2307:找不到模块' hammerjs'
我有两个问题。首先,有必要在github中获取tile定义的所有文件,我们可以得到hammerjs的简单定义吗?
我的package.json包含:
"dependencies": {
"git+https://git@github.com/DefinitelyTyped/DefinitelyTyped.git"
}
第二个问题,关于导入模块的错误是什么?
答案 0 :(得分:4)
我在阅读后解决了问题:http://x-team.com/2016/06/include-javascript-libraries-in-an-ionic-2-typescript-project/
我用命令安装了hammerjs:
typings install github:DefinitelyTyped / DefinitelyTyped / hammerjs / hammerjs.d.ts#de8e80dfe5360fef44d00c41257d5ef37add000a --global --save
然后仍然出现错误:
错误TS2307:找不到模块'hammerjs'
我正在使用ionic2开发应用程序,我发现typescript的编译器看起来是文件 main.d.ts 而不是 index.d.ts 。将文件index.d.ts重命名为main.d.ts并正常工作!在root-your-app / typings
中找到的文件main.d.ts对于项目中的导入,我使用:导入*作为Hammer来自'hammerjs';
答案 1 :(得分:2)
显然你滥用了package.json依赖项。
请阅读https://github.com/DefinitelyTyped/DefinitelyTyped#how-to-get-the-definitions如何使用此处提供的定义,或https://www.npmjs.com/package/typings如何使用较新的'类型'定义。
要回答第一个问题,您只需要定义项目依赖项。
要回答第二个问题,typescript编译器会尝试加载hammerjs依赖项但无法找到它。您必须将它作为依赖项添加到package.json中,然后使用npm安装它。
答案 2 :(得分:0)
Hammerjs可能与我正在处理的chrome扩展类型不同,但问题听起来非常像我在模块文件中缺少导入或导出时遇到的情况,您需要提供参考:
第1步:npm install --save @ types / chrome
步骤2:将///添加到需要使用模块的代码
第3步:该文件可以访问所有已声明的模块。[不要导入chrome或'@ types / chrome'] https://typescript.codeplex.com/wikipage?title=Modules%20in%20TypeScript