我将尝试用简单的例子来解释它。
如果您在 Angular 或 typescript 项目中使用第三方库(如 jQuery)
在Angular项目中可以直接引用jquery文件(angular.json文件),通过声明$或者jQuery来编写代码,如下图
如下图
declare var $: any;
ngOnInit() {
$(document).ready(function() {
alert('I am Called From jQuery');
});
}
代码将起作用。但问题是打字稿只是在编译时进行类型检查和发现代码中的错误。
由于 typescript 对 jquery 库一无所知,它无法执行静态类型检查。下面的代码编译没有任何错误
ngOnInit() {
$(document).ready(function() {
$('#my-button').click(1);
});
}
我将错误的参数传递给 jquery 的 click 函数,上面的代码将编译,并且在运行时,每当我们点击按钮元素时,它都会抛出错误。
这就是打字出现的地方。但是,如果您有 jquery 插件的类型定义,则只能在编译时捕获此类错误。
从节点包中安装 jquery 类型并在代码中引用它
npm install --save jquery
npm install --save @types/jquery
并在代码中导入jquery对象如下图
import * as $ from 'jquery';
现在上面的代码无法编译并抛出错误提示
Argument of type ‘1’ is not assignable to parameter of type ‘false | EventHandlerBase<HTMLElement, ClickEvent<HTMLElement, null, HTMLElement, HTMLElement>>’
您可以在How To Install And Use JQuery In Angular Projects阅读更多内容