打字稿不识别ajax查找功能

时间:2013-05-31 10:20:29

标签: asp.net-ajax typescript

我在asp.net ajax应用程序中遇到了一些问题。 我有很多在TypeScript文件中的JS代码。通过一些有限的JS经验,可以更轻松地为像我这样的人编写代码。

但是我也使用MS ASP.NET ajax提供的$ find()方法。 我这样做是因为我在我的应用程序中使用了Telerik RadDock,这是我可以在JS中操作RadDocks的唯一方法。

我更改标题,关闭并从JS打开它们。

现在我想在我的TypeScript文件中包含所有代码,但不幸的是它无法识别函数$ find()。

所以每当我需要使用$ find()函数时,我创建一个新函数并将其直接放在我的aspx页面中,然后我从我的打字稿文件中引用它。

即使不理想,也可以使用一两个功能,但现在它已成为一个真正的问题。 aspx文件中有很多代码。

任何人都可以就如何解决此问题向我提出建议。有什么方法可以引用我的TypeScript文件中的$ find()方法吗?

2 个答案:

答案 0 :(得分:2)

快速解决方法是为find方法添加声明,如下所示:

declare var $find;

这使您可以以任何方式使用它,但不会自动完成。

var result = $find();

在此示例中,result类型为any

如果你想要更多的自动完成,你可以使声明更明确 - 我不知道该函数的作用,但如果它接受了一个字符串并返回了一个数字,你可以将它们添加到你的声明:

declare var $find: (input: string) => number;

var result = $find('Example');

现在result变量的类型为number,如果你没有传递字符串,TypeScript会发出警告。

答案 1 :(得分:0)

您还可以安装DefinitelyTyped microsoft ajax库。我更喜欢从nuget安装。然后在您的javascript中包含此行:

/// <reference path="/Scripts/typings/microsoft-ajax/microsoft.ajax.d.ts" />