22

我刚刚下载了 TypeScript 文档。我有一些 JavaScript 类,我想在 TypeScript 测试应用程序中创建和使用这些类

如何从 TypeScript 调用包含的 JavaScript 的 JavaScript 函数。我不想创建“d.ts”文件。只是为了创建我的类,调用它的方法,访问它的属性。

我怎么做?


我正在尝试将 kendoUI 与 TypeScript 一起使用。

例如要显示一个窗口,我必须这样做:

  1. 有一个 HTML 来表示窗口的内容。我有一个 id 为 logonDialog 的 div。这个 div
    最初是隐藏的;
  2. 我创建窗口:logonDlg.kendoWindow(logOnParams);
  3. 然后使用 jQuery 我显示 div:使用logonDlg.show();

例子

var logonDlg = $("logonDialog");

if (!logonDlg.data("kendoWindow")) {
   logonDlg.kendoWindow(logOnParams);
   logonDlg.show();
}

它工作正常。JS 是按我的意愿生成的,但我收到一个错误,因为“JQuery”类型的值上不存在“kendoWindow”属性。

我怎样才能禁用这种错误。正如瑞安所说,我无法工作。

4

4 回答 4

24

如果你想停止错误而不做很多额外的工作,你可以从你的 JS 代码中“声明”对象:

declare var w; // implicit type here is 'any'
// (later, anywhere in your file...)
var x = new w(); // you can do whatever you want with w now without getting errors
w.x = 4; // etc.
于 2012-10-03T15:18:44.183 回答
8

有一个更好的解决方案。只需将 jQuery logonDlg 转换为任何这样的:

(<any>logonDlg).kendoWindow(logOnParams);

代码会有所不同,但工作方式相同。

  1. 没有强制转换生成的代码是这样的:logonDlg.kendoWindow(logOnParams);
  2. 用演员表会是这样的:(logonDlg).kendoWindow(logOnParams);

两者都工作正常。

问候

于 2012-10-05T17:02:49.983 回答
4

你就去做吧。TypeScript 不会阻止你。您将在编译器输出中看到警告,但tsc会很好地生成您的 JS 文件。

于 2012-10-03T14:50:13.753 回答
4

在这种特殊情况下,您可以只包含Telerik 提供的Kendo UI TypeScript 定义。

(我意识到当 TS 定义可能还不存在时,这个问题被问了回来,但想为将来遇到这个问题的人添加这个细节。)

于 2015-03-30T12:28:13.667 回答