这个问题同样出现在许多地方,解决方法就是简单地添加

import { } from '@types/googlemaps';

这在angular的过go 版本中起到了解决方案的作用.问题出现在我使用Angular 6时+

TS2304: Cannot find name 'google'.
TS2503: Cannot find namespace 'google'.

在我使用谷歌 map 类型的任何地方都会出现很多类似的错误.例如:

let place: google.maps.places.PlaceResult = autocomplete.getPlace();

我可以通过在使用谷歌 map 的所有行上方插入// @ts-ignore行来快速修复这个问题,但我对真正的修复更感兴趣.但事实上,这一点让我觉得这是一个我没有超级自信的tsconfig问题.

我可以确认googlemaps安装在node_modules/@types中,但我不确定Tconfig

ts.config

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

我创建了一个Stackblitz Example,如果你查看控制台,它会抛出一个引用错误.我不知道下一步该怎么办.

推荐答案

所以我之前在GitHub上遇到了这个问题,这对我很有效:

  • 一百

  • 加上我的tsconfig*.jsontypes: [ "googlemaps"]

  • 在我的文件顶部添加:declare const google: any

  • 在my index.html的正文末尾添加:

    <script async defer type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=****"> </script>

试试看,告诉我它是否有效.

Typescript相关问答推荐

如何在方法中定义TypeScript返回类型,以根据参数化类型推断变量的存在?

类型脚本类型字段组合

通配符路径与每条路径一起显示

TypeScrip 5.3和5.4-对`Readonly<;[...number[],字符串]>;`的测试版处理:有什么变化?

是否有一个版本的联合类型递归地使属性只出现在一个可选选项中?

在对象中将缺省值设置为空值

垫表页脚角v15

基于未定义属性的条件属性

在抽象类属性定义中扩展泛型类型

VITEST警告:当前的测试运行器不支持After Each/teardown挂钩

在类型脚本中创建显式不安全的私有类成员访问函数

如何从抽象类的静态方法创建子类的实例?

我可以使用JsDocs来澄清Typescript实用程序类型吗?

Typescript循环函数引用

如何提取具有索引签名的类型中定义的键

在对象数组中设置值

有没有一种简单的方法可以访问Keyboard Shortcuts JSON文件中列出的每个命令的显示名称(标题)?

在ts中获取级联子K类型?

必须从注入上下文调用Angular ResolveFn-inject()

const nav: typechecking = useNavigation() 和 const nav = useNavigation() 之间有什么区别?