我正在使用完全打了补丁的Visual Studio 2013。我试图使用JQuery、JQueryUI和JSRender,也在尝试使用TypeScript。在ts文件中,我遇到了以下错误:
"Property 'fadeDiv' does not exist on type '{}'."
我认为我已经为TypeScript引用了正确的JQuery、JQueryUI和JSRender,但从我所读的内容来看,这似乎是一个d.ts问题。
JavaScript中没有出现任何错误,但我不想让Visual Studio说有错误,如果可能的话。在JavaScript中两次提到fadeDiv
时,都有红色线条,而且两个错误显示的都是与上面相同的内容。
/// <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是命名空间。在typescript中,似乎我想做的是这样的。
$(document).ready(function () {
SUCSS.fadeDiv();
});
module SUCSS {
export function fadeDiv () {};
};
因此,通过使用export,该函数已被公开,并且我可以调用SUCSS.fadeDiv
通过调用SUCSS.fadeDiv();
在页面加载时运行。我希望这会有所帮助。
}
大括号,也许还有其他代码。 - mk.