我有一个使用JSPM的项目。 我使用的是FoundationJS,后者又需要JQuery。
我是这样导入JQuery的:
import jQuery from 'jquery';
然后像这样使用它:
jQuery(document).foundation();
一切都很好 - 从JSPM导入JQuery。
然而我决定转而使用TypeScript。
TypeScript即将出现错误'
无法找到模块' jquery'
如何在TypeScript中导入此JSPM模块? 我也在使用SystemJS ......但我不确定这是否有帮助!
答案 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,它与您在运行时使用的实际版本不兼容 - 那么您必须在其他地方找到正确的声明或自己写。