【问题标题】:how do I use typings client side effectively?我如何有效地使用打字客户端?
【发布时间】:2016-08-09 00:27:51
【问题描述】:

我正在尝试将库客户端与 TypeScript 一起使用。 (Zepto,一个轻量级的 JQuery 替代品)

这是针对旧浏览器的,所以我不想使用 import 和花哨的 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 得到大量的垃圾输出......

【问题讨论】:

    标签: typescript zepto tsd


    【解决方案1】:

    我认为这不是 Zepto var 的使用方式。

    直接从zeptojs.com'Core methods'部分我们可以看到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;
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-04-21
      • 2021-10-09
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 2017-10-04
      • 2015-04-20
      相关资源
      最近更新 更多