如何有效地使用打字客户端?

时间:2016-04-17 08:09:04

标签: typescript zepto tsd

我正在尝试使用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得到大量的垃圾输出......

1 个答案:

答案 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;

希望这有帮助。