直接从TypeScript调用JavaScript

mvb*_*ffa 21 typescript

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

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

我怎么做?


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

例如,要显示我必须要做的窗口:

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

var logonDlg = $("logonDialog");

if (!logonDlg.data("kendoWindow")) {
   logonDlg.kendoWindow(logOnParams);
   logonDlg.show();
}
Run Code Online (Sandbox Code Playgroud)

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

如何禁用此类错误.我不能说,瑞安说,工作.

Rya*_*ugh 23

如果你想在不做额外工作的情况下停止错误,你可以从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.
Run Code Online (Sandbox Code Playgroud)


mvb*_*ffa 8

有一个更好的解决方案.只需将jQuery logonDlg转换为如下所示:

(<any>logonDlg).kendoWindow(logOnParams);
Run Code Online (Sandbox Code Playgroud)

代码会有所不同,但效果会相同.

  1. 没有强制转换生成的代码是这样的:logonDlg.kendoWindow(logOnParams);
  2. 随着演员阵容将是这样的:(logonDlg).kendoWindow(logOnParams);

两者都工作正常.

问候


jos*_*hls 4

你就这么做吧。TypeScript 不会阻止你。您将在编译器输出中看到警告,但tsc会正常生成 JS 文件。

  • vs2013不是这样吗?建筑停止,我无法运行我的项目。 (5认同)