TS2669: Augmentations for the global scope can only be directly nested in external modules...的解决方案

看了网上不少资料,大多以讹传讹,完全不能用;因此查阅文档解决了之后记录一下。

问题的场景是这样的,做一个Vue + TS的项目,需要引入一些UMD库(需要在HTML中通过<script>标签引入)。以高德地图为例,它的文档是这样的:

在页面添加 JS API 的入口脚本标签,并将其中「您申请的key值」替换为您刚刚申请的 key;

<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的key值"></script> 

这种库的问题在于,相当于全局注入(挂载在window上),没有类型提示,无法在TS中使用。所以我就想着写一个声明文件来进行扩展。所以按照网上的说法,我就写了这样的代码:

// shims-global.d.ts
declare global {
  interface AMap {
    convertFrom: any;
  }

  const AMap: AMap

  interface Window {
    AMap: AMap;
  }
}

不要在意这个any,只是为了先让项目跑起来而已……

但是到了这里,就遇到了标题里的那个报错:TS2669: Augmentations for the global scope can only be

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值