Код Visual Studio: node_modules/@types/googlemaps/index.d.ts 'не является модулем - PullRequest
0 голосов
/ 26 июня 2018

Я следовал этому уроку: Интеграция Google Maps в Angular 5 , чтобы начать работу с Google Maps в моем приложении Angular 5 с использованием кода Visual Studio (версия 1.24.1 для Mac). До недавнего времени все работало нормально, но так как несколько дней назад (я думаю, что обновление VS Code происходило в фоновом режиме), я получаю сообщение об ошибке при импорте Google Maps в код Visual Studio, которое никогда не давало мне ошибки раньше:

import { } from '@types/googlemaps';

Я получаю следующую ошибку:

File 'full_path/node_modules/@types/googlemaps/index.d.ts' is not a module.

(обратите внимание, полный путь_путь - это полный родительский путь, для краткости здесь не показан)

Я вижу библиотеку, расположенную в правильном месте в моем каталоге node_modules. Также на библиотеку правильно ссылаются в моем package.json (это версия 3.30.10). Я не запускал npm update или любое другое обновление между тем временем, когда оно работало, и когда оно начало выдавать ошибку.

Когда я запускаю «npm start» или «npm run build», он работает просто отлично, и приложение обслуживается так, как раньше (и Google Map прекрасно отображает), поэтому это может показаться проблемой кода Visual Studio.

В этом смысле это на самом деле не блокирует меня, но было бы неплохо убрать ошибку из моей IDE. У кого-нибудь есть указатели на то, как избавиться от ошибки? Спасибо!

EDIT Я прочитал здесь: Как установить типографские наборы TS для карт Google , что есть два возможных решения. Директива с тройным слешем или изменение вашего tsconfig.json. У меня работала только директива с тройным слешем:

/// <reference path="<relevant path>/node_modules/@types/googlemaps/index.d.ts" />

По-прежнему будет интересоваться реальным исправлением, в котором я могу просто импортировать типы Карт Google.

1 Ответ

0 голосов
/ 02 августа 2018

Используйте только строку ниже в верхней части вашего файла .component.ts, это работает для меня.

/// <reference types="@types/googlemaps" />

МОЙ tsconfig.json

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

MY @ types / googlemaps version - "@types/googlemaps": "^3.30.11",

My @ angular / core версия - "@angular/core": "^6.1.0",

не используйте строки ниже (некоторые ответы рекомендуют любой из них) Ранее, когда я использовал angular 6.0.0, он работал с ними, но когда я обновил его, это не так: -

import { } from 'googlemaps'; 
import { } from '@types/googlemaps';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...