我了解到如果我安装并导入TypeScript库,它们将被编译为JS并包含在JS构建输出中,但下面的脚本不是这种情况,我不知道原因。
main.ts
/// <reference path="../typings/globals/jquery/index.d.ts" />
var data = "Hello Tahir";
$("div").text(data);
上面的代码不会产生任何错误并反编译为
main.js
/// <reference path="../typings/globals/jquery/index.d.ts" />
var data = "Hello Tahir";
$("div").text(data);
//# sourceMappingURL=main.js.map
正如您所看到的,jQuery库不是最终输出的一部分,因此我的代码在浏览器的控制台中产生以下错误
ReferenceError:$未定义
对我来说,解决此问题的唯一方法是将jquery添加到我的模板文件的标题中,如
<script
src="https://code.jquery.com/jquery-3.1.1.js"
integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA="
crossorigin="anonymous"></script>
但我相信这不是正确的做法,必须有一些我不知道的东西。
需要指导,谢谢!
答案 0 :(得分:1)
.d.ts
个文件包含外部库类型的定义;它们与外部库本身不同。将TypeScript代码转换为JavaScript时会删除这些类型,因为JavaScript没有显式输入。因此,.d.ts
文件在转换后的代码中没有用处。它就是为了让TypeScript转换器能够对外部库进行类型检查。
要解决您的问题,您必须将您正在使用的JQuery文件复制到您自己的scripts
文件夹(或您的脚本所使用的任何文件夹),并且您必须在HTML标头中引用此脚本文件。