Visual Studio代码:node_modules/@types/googlemaps/index.d.ts'不是模块

时间:2018-06-26 19:50:09

标签: angular typescript visual-studio-code

我遵循了本教程: Integrating Google Maps in Angular 5,以使用Visual Studio代码(在Mac上为1.24.1版)在Angular 5应用程序中开始使用Google Maps。直到最近一切都运转良好,但是自几天前以来(我猜是在后台对VS Code进行了更新),我在Visual Studio Code中导入Google Maps时遇到错误,以前从未给我错误:

import { } from '@types/googlemaps';

我收到以下错误:

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

(请注意,full_path是完整的父路径,为简洁起见,此处未显示)

我可以看到该库位于我的node_modules目录中的正确位置。另外,在我的package.json(版本3.30.10)中正确引用了该库。在运行时和开始出现错误之间,我没有运行npm update或任何其他更新。

当我运行“ npm start”或“ npm run build”时,它运行良好,并且可以像以前一样处理应用程序(并且Google Map呈现完美),因此这似乎是Visual Studio Code问题。 / p>

从这个意义上说,它并没有真正地阻止我,但是将错误从我的IDE中清除将是一件很不错的事情。是否有人对如何消除错误有任何指示?谢谢!

编辑 我在这里阅读:How to install TS typings for Google maps,有两种可能的解决方案。三斜杠指令或更改您的tsconfig.json。对我而言,只有三斜杠指令有效:

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

我仍然可以对真正的修复感兴趣,因为我可以导入Google Maps类型。

1 个答案:

答案 0 :(得分:1)

仅在.component.ts文件顶部的下一行使用,对我有用。

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

MY 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"
    ]
  }
}

我的@ types / googlemaps版本-"@types/googlemaps": "^3.30.11",

我的@ angular / core版本-"@angular/core": "^6.1.0",

不要在下面的行中使用(有些回答建议使用任一行)早些时候,当我使用angular 6.0.0时,它们可以使用这些,但是当我升级时,它不是:-

import { } from 'googlemaps'; 
import { } from '@types/googlemaps';