首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ionic2 TypeScript显示错误:找不到名称' google‘和'$',但是google地图和jquery仍然有效

ionic2 TypeScript显示错误:找不到名称' google‘和'$',但是google地图和jquery仍然有效
EN

Stack Overflow用户
提问于 2016-06-21 10:16:24
回答 1查看 8.7K关注 0票数 1

我正在尝试使用ionic2构建一个TypeScript应用程序。

在index.html中,我尝试在cordova.js之前将jquery和google插入其中:

代码语言:javascript
复制
  <!-- Vendor -->
  <script src="https://maps.googleapis.com/maps/api/js?key=XXXXX&signed_in=false"></script>
  <script src="asset/jquery.min.js"></script>

  <!-- cordova.js required for cordova apps -->
  <script src="cordova.js"></script>

应用程序中的google地图和jquery正常工作,但是我只是想知道为什么当我运行“离子型服务”命令时,这些错误信息会显示出来。

代码语言:javascript
复制
TypeScript error: /Users/xxx/client_app/app/pages/step1/step1.ts(15,21): Error TS2304: Cannot find name 'google'.
TypeScript error: /Users/xxx/client_app/app/pages/step1/step1.ts(30,18): Error TS2304: Cannot find name 'google'.
TypeScript error: /Users/xxx/client_app/app/pages/step1/step1.ts(37,24): Error TS2304: Cannot find name 'google'.
TypeScript error: /Users/xxx/client_app/app/pages/step1/step1.ts(39,5): Error TS2304: Cannot find name '$'.
TypeScript error: /Users/xxx/client_app/app/pages/step1/step1.ts(39,42): Error TS2304: Cannot find name '$'.
TypeScript error: /Users/xxx/client_app/app/pages/step1/step1.ts(39,76): Error TS2304: Cannot find name '$'.

下面是步骤1.ts中我代码的一部分:

代码语言:javascript
复制
  ngOnInit() {
    this.gmap = new google.maps.Map(document.getElementById('gmap_canvas'), {
            center: {
                lat: 22.280102,
                lng: 114.183751
            },
            zoom: 16,
            streetViewControl: false,
            styles : [{
                featureType: "poi",
                elementType: "labels",
                stylers: [
                    { visibility: "off" }
                ]
            }],
            mapTypeControlOptions: {
                mapTypeIds: [google.maps.MapTypeId.ROADMAP]
            },
            overviewMapControl: false,
            mapTypeControl: false,
        });

    this.gmap.controls[google.maps.ControlPosition.TOP_CENTER].push(document.getElementById('gmep_center_marker'));

    $('#gmep_center_marker').css({ top: ($('#gmap_canvas').height() / 2) - $('#gmep_center_marker').height() });
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-21 11:47:08

简单的解决办法是在文件的顶部添加变量声明:

代码语言:javascript
复制
import {...} from '...';

declare var google: any;
declare var $: any;

不过,我建议安装正确的类型定义文件。我知道有一个JQuery是这样安装的:

代码语言:javascript
复制
typings install jquery --ambient --save

在顶部的组件文件中添加以下内容:

代码语言:javascript
复制
///<reference path="../typings/jquery/jquery.d.ts"/>

import {...} from '...';

我不知道google的输入文件,所以您最好使用上面提到的快速修复来使用google。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37941683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档