如何在打字稿中导入类型定义?

时间:2016-06-11 15:55:01

标签: typescript angular ionic2 hammer.js

我尝试使用hammerjs的类型定义。为:

import Hammer from 'hammerjs';

但是我收到了这个错误:

  

错误TS2307:找不到模块' hammerjs'

我有两个问题。首先,有必要在github中获取tile定义的所有文件,我们可以得到hammerjs的简单定义吗?

我的package.json包含:

"dependencies": {
   "git+https://git@github.com/DefinitelyTyped/DefinitelyTyped.git"
}

第二个问题,关于导入模块的错误是什么?

3 个答案:

答案 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