使用TypeScript和JSPM导入JQuery

时间:2016-10-19 17:17:51

标签: typescript systemjs jspm

我有一个使用JSPM的项目。 我使用的是FoundationJS,后者又需要JQuery。

我是这样导入JQuery的:

import jQuery from 'jquery';

然后像这样使用它:

jQuery(document).foundation();

一切都很好 - 从JSPM导入JQuery。

然而我决定转而使用TypeScript。

TypeScript即将出现错误'

  

无法找到模块' jquery'

如何在TypeScript中导入此JSPM模块? 我也在使用SystemJS ......但我不确定这是否有帮助!

1 个答案:

答案 0 :(得分:1)

在打字稿中使用jQuery和FoundationJS等javascript库时,你只需要为typescript提供足够的信息来检查你的代码。

这通常是通过将type declarations包含在javascript库中以及将由typescript编译的源文件来完成的。

对于typescript 2.0,您可以在@types npm前缀下找到jQuery和FoundationJS的类型声明:

npm install @types/foundation

将在node_modules/@types中安装FoundationJS及其依赖项jQuery的声明,其中typescript编译器会自动找到它。

但是这些声明的编写方式与导入jQuery的方式不兼容。看起来您必须更改导入以使用与pre-es6模块兼容的特定于typecript的语法:

import jQuery = require('jquery');

然后编译。然后,您可能必须选择正确的模块格式(在compiler options中查找--module)。 Typescript默认生成CommonJS,这不应该是SystemJS的问题(import ... = require语法排除使用es6模块格式)。

另一个可能的问题可能是来自@types的声明是针对不同版本的jQuery或FoundationJS,它与您在运行时使用的实际版本不兼容 - 那么您必须在其他地方找到正确的声明或自己写。