我正在尝试将库客户端与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得到大量的垃圾输出就好了……
发布于 2016-04-17 19:33:36
我认为这不是Zepto var的用法。
直接从zeptojs.com‘核心方法’部分,我们可以看到Zepto var可以用来指定回调函数,当库准备好使用时:
Zepto(function($){
alert('Ready to Zepto!')
})这正是zepto.d.ts所包含的-声明一个只接受回调函数作为参数的函数:
declare var Zepto: (fn: ($: ZeptoStatic) => void) => void; 如果你想使用zepto方法--就像你在$中做的那样,通过jquery来访问它们:
$.ajax(......);这正是它的定义所说的:
declare var $: ZeptoStatic;希望这能有所帮助。
https://stackoverflow.com/questions/36674130
复制相似问题