我正在开发一个使用Google Maps TypeScrip API的应用程序,今天当该应用程序启动时,我收到了这条警告消息->

从2024年2月21日开始,google.maps.Marker将不再是 可用.相反,可以使用google.maps.marker.AdvancedMarkerElement.发现 有关停产的更多信息,请访问 https://developers.google.com/maps/deprecations.

但AdvancedMarkerElement不具有具有标记类的所有属性... 为什么会这样呢?我把@Types/google.map更新到了最新的版本,但我一直收到同样的警告,有人知道这件事吗?又如何解决呢?

推荐答案

这个弃用警告与@types/google.maps无关-它是来自Google Maps' libraries you load的警告.

看,谷歌 map 是versioned.您可以通过optional loading parameter v明确请求version.如果你没有通过,谷歌将默认使用weekly版本--这就是deprecation warning likely comes from版本.

快速"修复"以消除这一警告:降级到最接近的minor版本,即3.55.

长期解决办法:判断if,以及如何能够/应该将Markers迁移到AdvancedMarkers.记住,Markers是被弃用的,而不是discontinued--这意味着你基本上可以无限期地继续使用它们,用于一些(遗留)用例,如第三方标记集群等.如果你需要温习这些概念,请参考我的Marker Comparison Guide或我的Marker Customization Guide.

最后,正如@ceejayoz在 comments 中所建议的,AdvancedMarkers本质上是Markers的超集:它们扩展了它们的功能并提高了性能.

Typescript相关问答推荐

如何使用TypScript和react-hook-form在Next.js 14中创建通用表单组件?

如何提取密钥及其对应的属性类型,以供在新类型中使用?

对数组或REST参数中的多个函数的S参数进行类型判断

打印脚本中的动态函数重载

了解类型规则中的关键字

带下拉菜单的Angular 响应式选项卡

Cypress页面对象模型模式.扩展Elements属性

使用KeyOf和Never的循环引用

如何使用模板继承从子组件填充基础组件的画布

为什么在leetcode问题的测试用例中,即使我确实得到了比预期更好的解决方案,这段代码也失败了?

刷新时保持当前名称的Angular

我在Angular 17中的environment.ts文件中得到了一个属性端点错误

有没有办法在Zod中使用跨字段验证来判断其他字段,然后呈现条件

react 路由不响应参数

如何静态键入返回数组1到n的函数

Typescript .根据枚举输入参数返回不同的对象类型

如何在Nextjs路由处理程序中指定响应正文的类型

类型脚本中函数重载中的类型推断问题

两个子组件共享控制权

在 next.js 13.4 中为react-email-editor使用forwardRef和next/dynamic的正确方法