Angular8.1.2用@asymmetrik/ngx-leaflet遇TS1086、TS2456错误求助
解决Angular 8.1.2中使用@asymmetrik/ngx-leaflet的编译错误
你遇到的编译错误分为两类,对应不同的版本兼容问题,以下是具体解决步骤:
一、解决TS1086: An accessor cannot be declared in an ambient context错误
这个错误是因为你安装的@asymmetrik/ngx-leaflet版本过高,使用了TypeScript 3.7+才支持的“在.d.ts文件中声明访问器”特性,而Angular 8.1.2配套的TypeScript版本是3.4.x,不支持该特性。
解决方法:安装与Angular 8兼容的ngx-leaflet版本(7.x系列):
- 卸载当前版本:
npm uninstall @asymmetrik/ngx-leaflet - 安装兼容版本:
注:ngx-leaflet版本与Angular版本严格对应,Angular 8对应v7,Angular 9对应v8,以此类推。npm install @asymmetrik/ngx-leaflet@7.2.1 --save
二、解决TS2456: Type alias 'Geometry' circularly references itself错误
这个错误来自@types/geojson的高版本,其使用了TypeScript 3.7+支持的循环类型引用,同样不兼容Angular 8的TS版本。
解决方法:降级@types/geojson到兼容版本:
- 卸载当前版本:
npm uninstall @types/geojson - 安装兼容版本:
npm install @types/geojson@7946.0.7 --save-dev
完成上述操作后,重新执行编译命令即可解决所有错误。
内容的提问来源于stack exchange,提问作者Abidalli Chayma
相关产品推荐
相关产品推荐

