【问题标题】:JQuery typescript definition for .prop?.prop 的 JQuery 打字稿定义?
【发布时间】:2012-11-06 18:24:28
【问题描述】:

我有以下代码:

// Populate the title of the selects on change and trigger a change
$('#modal .update-title')
    .change(function () {
        var $select = $(this),
        match = null,
        matchRow = null,
        title = $('option:selected', this).prop('title');

在打字稿中,这将标题的值设置为布尔值。然后,当我尝试按如下方式使用它时,出现错误:

$("#modal_Title_" + matchRow).val(title);

这是 JQuery 定义的另一个问题还是我做错了什么?检查定义文件时,我看到以下内容:

prop(propertyName: string): bool;

这似乎与 JQuery 文档不匹配。

【问题讨论】:

  • 试试.val(title.toString());,值应该是字符串。
  • 您是否收到错误消息?

标签: javascript jquery typescript


【解决方案1】:

正如@Alnitak 指出的那样,返回值应该是'any'。

我已经修复了DefinitelyTyped 的 jQuery 定义文件,它是 TypeScript 文件的一个分支,但有许多修复。

【讨论】:

    【解决方案2】:

    jQuery 文档不正确,您的类型定义文件也不正确。

    大多数属性是字符串,但有些是数字(例如.selectedIndex),有些是布尔值(.checked 等),$.fn.prop() 不会将它们全部转换为字符串。

    正确的定义应该是:

    prop(propertyName: string): any;
    

    TypeScript 网站上已经列出了 work item 来解决此问题。

    【讨论】:

      【解决方案3】:

      jQuery 文档声明 prop 返回:

      • 使用一个参数调用时的字符串

      • 使用两个参数调用的 jQuery 对象

      http://api.jquery.com/prop/

      所以根据这个 jquery.d.ts 可能是不正确的。

      我的建议是编辑 jquery.d.ts 以使其在您的项目中正确,并在 typescript.codeplex.com 上提出错误

      prop(propertyName: string): string;
      

      【讨论】:

        猜你喜欢
        • 2020-07-07
        • 1970-01-01
        • 2014-11-16
        • 2013-03-20
        • 1970-01-01
        • 2023-03-18
        • 2018-06-05
        • 1970-01-01
        • 2023-04-02
        相关资源
        最近更新 更多