TypeScript:类型“{}”上不存在属性

新手上路,请多包涵

我正在使用完全修补的 Visual Studio 2013。我正在尝试使用 JQuery、JQueryUI 和 JSRender。我也在尝试使用 TypeScript。在 ts 文件中,我收到如下错误:

类型“{}”上不存在属性“fadeDiv”。

我认为我对 TypeScript 的 JQuery、JQueryUI 和 JSRender 有正确的参考,但从我读到的内容来看,这看起来像是一个 d.ts 问题。

JavaScript 中没有错误,但我不想让 Visual Studio 说有错误,如果我能提供帮助的话。两次 fadeDiv 都在 JavaScript 中提到,它下面有一条红线,两个错误都与上面的内容相同。

 /// <reference path="../scripts/typings/jquery/jquery.d.ts" />
/// <reference path="../scripts/typings/jqueryui/jqueryui.d.ts" />
/// <reference path="typings/jsrender/jsrender.d.ts" />

var SUCSS = {};

$(document).ready(function () {
   SUCSS.fadeDiv();
});

SUCSS.fadeDiv = function () {
var mFadeText: number;
$(function () {
    var mFade = "FadeText";
    //This part actually retrieves the info for the fadediv
    $.ajax({
        type: "POST",
        //url: "/js/General.aspx/_FadeDiv1",
        url: "/js/sucss/General.aspx/_FadeDivList",
        //data: "{'iInput':" + JSON.stringify(jInput) + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: function (xhr, status, error) {
            // Show the error
            //alert(xhr.responseText);
        },
        success: function (msg) {
            mFadeText = msg.d.Fade;
            // Replace the div's content with the page method's return.
            if (msg.d.FadeType == 0) {//FadeDivType = List
                var template = $.templates("#theTmpl");
                var htmlOutput = template.render(msg.d);
                $("[id$=lblFadeDiv]").html(htmlOutput);
            }
            else {//FadeDivType = String
                $("[id$=lblFadeDiv]").html(msg.d.FadeDivString);
            }
        },
        complete: function () {
            if (mFadeText == 0) {
                $("[id$=lblFadeDiv]").fadeIn('slow').delay(5000).fadeOut('slow');
            }
        }
    });
});

对于以后可能会阅读本文的人来说,SUCSS 就是命名空间。在打字稿中,我似乎想做这样的事情。

 $(document).ready(function () {
    SUCSS.fadeDiv();
});
module SUCSS {
    export function fadeDiv () {};
};

因此,该函数通过使用导出公开,我可以调用 SUCSS.fadeDiv 通过使用 SUCSS.fadeDiv(); 调用它来在页面加载时运行。我希望这会有所帮助。

原文由 jvcoach23 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.7k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进