我正在尝试使用TypeScript的库客户端。 (Zepto,一种轻量级的JQuery替代方案)
这适用于旧浏览器,所以我不想使用导入和花哨的ES6语法,理想情况下避免使用require / commonJS等。
所以我只是使用脚本标记将其添加到同一页面。
此库存在一个类型定义。我添加了它。
然后在我的主JS文件中添加:
/// <reference path="../typings/browser.d.ts" />
该文件指向包含以下内容的文件:
/// <reference path="browser/ambient/node/index.d.ts" />
/// <reference path="browser/ambient/zepto/index.d.ts" />
/// <reference path="browser/definitions/universal-analytics/index.d.ts" />
等
但如果我尝试:
Zepto.ajax({
给出TS错误:
Property 'ajax' does not exist on type '(fn: ($: ZeptoStatic) => void) => void'.
还有很多其他错误。
Argument of type 'string' is not assignable to parameter of type '($: ZeptoStatic) => void'.
我是否正确使用这些打字文件客户端? 也许只是Zepto的打字不正确......?
感谢您的任何指示。很高兴不会一直从tsc
得到大量的垃圾输出......
答案 0 :(得分:0)
我认为这不是用于Zepto
var的方式。
直接从zeptojs.com'核心方法'部分我们可以看到Zepto var可用于在准备好使用lib时指定回调函数:
Zepto(function($){
alert('Ready to Zepto!')
})
这正是zepto.d.ts包含的内容 - 声明一个接受回调函数作为唯一参数的函数:
declare var Zepto: (fn: ($: ZeptoStatic) => void) => void;
如果你想使用zepto方法 - 继续通过$
var访问它们,就像在jquery中一样:
$.ajax(......);
这正是它的定义所说的:
declare var $: ZeptoStatic;
希望这有帮助。