You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ionic Capacitor集成Google Maps时TS2688错误求助

问题

我在Ionic Capacitor Angular项目中集成Google Maps,按照官方文档操作,但构建时出现如下错误:

Error: node_modules/@capacitor/google-maps/dist/typings/definitions.d.ts:1:23 - error TS2688: Cannot find type definition file for 'google.maps'.
[ng] 1 /// <reference types="google.maps" />

我搜遍了资料、查了文档,甚至尝试了相关Stack Overflow问题的解决方案,但都没用。

更新:附上项目的package.json内容

{
  "name": "Project",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "https://ionicframework.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^14.2.5",
    "@angular/cdk": "^14.2.4",
    "@angular/common": "^14.0.0",
    "@angular/core": "^14.0.0",
    "@angular/forms": "^14.0.0",
    "@angular/material": "^14.0.4",
    "@angular/platform-browser": "^14.0.0",
    "@angular/platform-browser-dynamic": "^14.0.0",
    "@angular/router": "^14.0.0",
    "@capacitor/android": "4.1.0",
    "@capacitor/app": "^4.1.0",
    "@capacitor/browser": "^4.0.1",
    "@capacitor/camera": "^4.1.3",
    "@capacitor/core": "^4.3.0",
    "@capacitor/geolocation": "^4.0.1",
    "@capacitor/google-maps": "^4.3.0",
    "@capacitor/haptics": "^4.0.1",
    "@capacitor/ios": "^4.3.0",
    "@capacitor/keyboard": "^4.0.1",
    "@capacitor/status-bar": "^4.0.1",
    "@ionic-native/core": "^5.36.0",
    "@ionic/angular": "^6.1.12",
    "@ionic/pwa-elements": "^3.1.1",
    "@ionic/storage": "^3.0.6",
    "ngx-color-picker": "^13.0.0",
    "rxjs": "~6.6.0",
    "swiper": "^8.4.4",
    "tslib": "^2.2.0",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^14.0.0",
    "@angular-eslint/builder": "~13.0.1",
    "@angular-eslint/eslint-plugin": "~13.0.1",
    "@angular-eslint/eslint-plugin-template": "~13.0.1",
    "@angular-eslint/template-parser": "~13.0.1",
    "@angular/cli": "^14.0.0",
    "@angular/compiler": "^14.0.0",
    "@angular/compiler-cli": "^14.0.0",
    "@angular/language-service": "^14.0.0",
    "@capacitor/cli": "^4.1.0",
    "@ionic/angular-toolkit": "^6.0.0",
    "@ionic/lab": "3.2.13",
    "@types/googlemaps": "^3.43.3",
    "@types/jasmine": "~3.6.0",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^12.11.1",
    "@typescript-eslint/eslint-plugin": "5.3.0",
    "@typescript-eslint/parser": "5.3.0",
    "eslint": "^7.6.0",
    "eslint-plugin-import": "2.22.1",
    "eslint-plugin-jsdoc": "30.7.6",
    "eslint-plugin-prefer-arrow": "1.2.2",
    "jasmine-core": "~3.8.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~6.3.2",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.0.3",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "protractor": "~7.0.0",
    "ts-node": "~8.3.0",
    "typescript": "~4.7.3"
  },
  "description": "An Ionic project"
}
解决方案

从你的package.json可以看出,你安装的是旧版的@types/googlemaps类型包,但Capacitor Google Maps当前依赖的是官方维护的@types/google.maps包,这是导致类型找不到的核心原因。按以下步骤修复:

  1. 卸载旧类型包
    执行命令:

    npm uninstall @types/googlemaps --save-dev
    
  2. 安装官方类型包
    执行命令:

    npm install @types/google.maps --save-dev
    
  3. 配置tsconfig.json
    在项目根目录的tsconfig.json中,找到compilerOptions下的types数组(没有则添加),确保包含google.maps:

    "compilerOptions": {
      // 其他已有配置...
      "types": [
        "google.maps"
      ]
    }
    
  4. 清理缓存并重新构建
    执行命令:

    npm cache clean --force
    rm -rf node_modules
    rm package-lock.json
    npm install
    ng build
    

完成以上步骤后,构建时的类型定义错误应该就能解决。

内容的提问来源于stack exchange,提问作者Osama El-Masri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 09:20:33