web-dev-qa-db-ja.com

Angular 6-@ types / googlemaps / index.d.ts 'はモジュールではありません

package.jsonファイルのいくつかのパッケージを更新しました。その後、npm installを実行した後、ng serveを実行します。しかし、私は今、次のエラーが発生しています。

ERROR in ... File '.../node_modules/@types/googlemaps/index.d.ts' is not a module.
... error TS6137: Cannot import type declaration files. Consider importing 'googlemaps' instead of '@types/googlemaps'

ここで提案された解決策を試してみました- @ types/googlemaps/index.d.ts 'はモジュールではありません component.tsファイルの先頭に/// <reference types="@types/googlemaps" />を追加しましたが、これは私を修正しませんでした問題とエラーが続く。


package.json

{
  "name": "demo",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^6.1.7",
    "@angular/cdk": "^6.0.0",
    "@angular/common": "^6.1.7",
    "@angular/compiler": "^6.1.7",
    "@angular/core": "^6.1.7",
    "@angular/flex-layout": "^6.0.0-beta.18",
    "@angular/forms": "^6.1.7",
    "@angular/http": "^6.1.7",
    "@angular/material": "^6.0.0",
    "@angular/platform-browser": "^6.1.7",
    "@angular/platform-browser-dynamic": "^6.1.7",
    "@angular/router": "^6.1.7",
    "@auth0/angular-jwt": "^2.0.0",
    "@types/chartjs": "0.0.31",
    "@types/googlemaps": "^3.30.13",
    "@types/lodash": "^4.14.108",
    "auth0-js": "^9.5.1",
    "auth0-lock": "^11.6.1",
    "chart.js": "^2.7.2",
    "chartjs-plugin-annotation": "^0.5.7",
    "chartjs-plugin-datalabels": "^0.3.0",
    "core-js": "^2.5.5",
    "d3": "^5.1.0",
    "font-awesome": "^4.7.0",
    "hammerjs": "^2.0.8",
    "json-formatter-js": "^2.2.0",
    "lodash": "^4.17.10",
    "lodash-es": "^4.17.10",
    "moment": "^2.22.1",
    "npm": "^6.0.0",
    "progressbar.js": "^1.0.1",
    "rxjs": "^6.3.2",
    "rxjs-compat": "^6.1.0",
    "ua-parser-js": "^0.7.18",
    "wordcloud": "^1.1.0",
    "zone.js": "^0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.6.0",
    "@angular/cli": "6.2.2",
    "@angular/compiler-cli": "^6.1.7",
    "@angular/language-service": "^6.1.7",
    "@types/d3": "^5.0.0",
    "@types/d3-dsv": "^1.0.31",
    "@types/jasmine": "~2.8.7",
    "@types/jasminewd2": "~2.0.3",
    "@types/lodash-es": "^4.17.0",
    "@types/node": "~8.9.4",
    "codelyzer": "^4.3.0",
    "eslint": "^4.19.1",
    "jasmine-core": "~3.1.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~2.0.2",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "^1.4.2",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^1.0.0",
    "protractor": "~5.3.1",
    "source-map-Explorer": "^1.5.0",
    "ts-node": "~6.0.3",
    "tslint": "~5.10.0",
    "TypeScript": "~2.9.2"
  }
}

tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "types": ["googlemaps"],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}

component.ts

/// <reference types="@types/googlemaps" />
import { Component, OnInit, Input, ViewChild, AfterViewInit } from '@angular/core';
import { } from '@types/googlemaps';
8
Kay

Component.tsファイルでは、おそらくこの行は必要ありません(Angular <6)専用です:

import { } from '@types/googlemaps';

Angular 6の(基本/最小)の例は次のとおりです。

/// <reference types="@types/googlemaps" />
map: google.maps.Map;
this.map = new google.maps.Map(....);

基本的に、Angular <6で使用する場合は、importメソッドを使用して追加する必要があります。InAngular 6+ referenceメソッドで追加する必要がありますが、両方を同時に追加しないでください。

私が助けてくれることを願っています。

9
Neyxo

Angular6〜の場合

  1. npm install @types/googlemaps --save-devまたはyarn add @types/googlemaps
  2. "googlemaps"型の配列にtsconfig.app.jsonを追加します

adding 'googlemaps' to tsconfig.app.json example (Line 6)

  1. "googlemaps"型の配列にtsconfig.spec.jsonを追加します

adding 'googlemaps' to tsconfig.app.json example (Line 8)

  1. Component.tsファイルの最初の行に/// <reference types="@types/googlemaps" />を追加します。この行は@ types/googlemapsをインポートします。 (以下の例の1行目)
  2. Google変数をdeclare let google: any;として宣言します(以下の例のLine6)

enter image description here

参照:

14
Midori

パスnode_modules/@types/googlemaps/index.d.tsに次の行を追加して、googlemapsモジュールを宣言します。

declare module 'googlemaps';

それから加えて import {} from 'googlemaps';コンポーネントのtsファイル。

0