方法/属性不存在

Chr*_* C. 2 iframe typescript

我正在尝试转换JavaScript代码

if (window.ifEdit.editIsDirty()) { }
Run Code Online (Sandbox Code Playgroud)

到打字稿.我得到了以下内容

var iframe = document.getElementById('ifEdit');
var iWindow = <HTMLIFrameElement>(iframe).contentWindow;

var _editIsDirty = iWindow.editIsDirty();
Run Code Online (Sandbox Code Playgroud)

我在'contentWindow'和'editIsDirty'下得到了红色的曲线,说方法/属性在类型上不存在..ts不会编译为.js文件.

我搜索过,但没有设法找到解决方案.

Nit*_*mer 12

对于该contentWindow部分,您的代码的问题是转换是错误的,应该是:

var iWindow = (<HTMLIFrameElement> iframe).contentWindow;
Run Code Online (Sandbox Code Playgroud)

至于editIsDirty它,它不是标准的属性Window.
如果它是在您运行javascript的环境中添加的内容,那么您需要声明它如下:

interface IfEdit {
    editIsDirty(): boolean;
}

interface Window {
    ifEdit: IfEdit;
}

var iframe = document.getElementById("ifEdit");
var iWindow = (<HTMLIFrameElement> iframe).contentWindow;

var _editIsDirty = iWindow.ifEdit.editIsDirty();
Run Code Online (Sandbox Code Playgroud)

使用Playground中的代码.