typescript中的Openlayers javascript库

typescript中的Openlayers javascript库,javascript,typescript,openlayers,Javascript,Typescript,Openlayers,我们正在使用typescript进行一个项目。这是第一个使用typescript的项目。 在这个项目中,我们需要连接到WFS服务器,这会将GML返回给我们。现在要解析GML,我们考虑使用OpenLayers javascript库。我知道Openlayers有一个明确类型的版本,但是GML解析还没有准备好 因此,我们尝试删除javascript文件。但我认为我们遗漏了一些东西,因为我们得到了一个错误:Openlayers是未定义的 这是我们的代码: module PP.Data { de

我们正在使用typescript进行一个项目。这是第一个使用typescript的项目。 在这个项目中,我们需要连接到WFS服务器,这会将GML返回给我们。现在要解析GML,我们考虑使用OpenLayers javascript库。我知道Openlayers有一个明确类型的版本,但是GML解析还没有准备好

因此,我们尝试删除javascript文件。但我认为我们遗漏了一些东西,因为我们得到了一个错误:Openlayers是未定义的

这是我们的代码:

module PP.Data {
    declare var OpenLayers: any;
    export class WebRequest {

        public GetGML(url: string): XMLDocument {
            var retour: XMLDocument;
            var _this = this;
            $.ajax({
                url: url,
                type: 'GET',
                crossDomain: true,
                cache: false,
                async: false,
                dataType: 'xml'
            }).done(function (data) {
                var format = new OpenLayers.Format.GML();
                retour = format.read(data);
                });

            return retour;
        }
}
}
因此,当我们尝试创建GML实例时,错误就开始了

有什么想法吗

谢谢

OpenLayers未定义

确保包含OpenLayers,例如在尝试从typescript使用它之前使用脚本标记

与错误无关,但已注意到 实际上,这里返回的是未定义的,因为retour在返回之前没有分配

       .done(function (data) {
            var format = new OpenLayers.Format.GML();
                  retour = format.read(data);
            });

        return retour;

您应该返回承诺,即.done函数的返回值或回调。它需要一路异步。

我对typescript了解不多,但您是否应该像您在外部声明的那样在GetGML done函数中引用OpenLayers?typescript显示了一个错误。大概是的。这将与上下文、这个等有关,但我对typescript了解不够,无法调试。行var format=new OpenLayers.format.GML;就其本身而言当然是好的。我已经将Openlayers.js添加到html页面。在js之后,我添加了我的文件: