实际上我们在types中没有jquery的类型,因此,为了使它能在.ts中正常运行,我们需要在.d.ts这个描述文件中为其做声明:
declare const $: (param: () => void) => void;
分析一下这个声明,做一个拆分,外层如下
$() // 这是一个jquery函数
对应的声明
$:()=>void
仔细看看,这个应该能理解,声明 这 是 一 个 函 数 , 并 且 它 没 有 返 回 值 , 之 后 再 看 参 数 , 这是一个函数,并且它没有返回值,之后再看参数, 这是一个函数,并且它没有返回值,之后再看参数,()里面嵌套了一个function() {},对应的声明里也要嵌套一个函数类型,很明显,function() {}是$()的参数,这个参数是一个函数,并且它也没有返回值,
// 因此在外层的声明里,添加一个参数,并为其设置函数类型且没有返回值
param: () => void
就拿上面的例子
;$(function() {})();
这明显也是一个函数,我们也可以使用函数的方式做声明
declare function $(params: () => void): void;
经过上面的分析,这个应该能明白点了吧,声明了一个函数$,它没有返回值,因此是void,但它有一个参数,参数是一个函数