我觉得我在这里缺少一些非常简单的东西。我正在构建一个使用 Esri ArcGIS API 的类,但是当我从arcgis-js-api
'sd.ts
文件中导入类型定义时,我收到打字稿错误“无法将'new'与类型缺少调用的表达式一起使用或构造签名。”
前任:
import * as IMap from 'esri/Map';
export class Foo {
bar: (Map: IMap) {
const map = new Map(); // <-- error here
}
}
文件中的相关片段d.ts
:
declare namespace __esri {
/* snip */
interface Map extends Accessor, LayersMixin {
allLayers: Collection;
basemap: Basemap;
ground: Ground;
}
interface MapConstructor {
new(properties?: MapProperties): Map;
}
export const Map: MapConstructor;
/* snip */
}
declare module "esri/Map" {
import Map = __esri.Map;
export = Map;
}
看起来类型定义对我来说是正确的,那么我做错了什么会让 Typescript 认为该IMap
类型没有构造函数?