TypeScript警告:类型“ number”上不存在属性“ length”

时间:2018-08-02 16:00:06

标签: javascript jquery angular

运行Angular 6并尝试编译以前没有工作的错误代码...编译时抛出以下代码“类型'number'不存在属性'length'

$('input[required], select[required], textarea[required]').on('change, input', function(e) {
    var rc = 0;
    $('[required]').each(function() {
      if($(this).val().length === 0) {
        rc++;
      }
    });
    if(rc === 0) {
      $('button').prop("disabled", false);
    } else {
      $('button').prop("disabled", true);
    }
});

此帖子(How can I stop "property does not exist on type JQuery" syntax errors when using Typescript?)指出,我应该在长度所在的位置添加“ any”。我的操作与帖子中所见完全相同,但是在编译时仍然出现相同的错误?

感谢任何想法!

1 个答案:

答案 0 :(得分:0)

首先检查您使用的选择器是否正确。

如果jQuery由于选择器错误而找不到该元素,那么您将不会得到任何具有这种属性的对象。

第二,检查该属性是否存在。这是可以帮助您的帖子:How to check if object property exists with a variable holding the property name?

此处显示了如何打印对象的属性(如果对象存在):https://www.infragistics.com/community/blogs/b/dhananjay_kumar/posts/how-to-print-or-enumerate-properties-of-a-javascript-object