我觉得这里有很简单的东西。我已经构建了一个使用Esri ArcGIS API构建的类,但是当我从arcgis-js-api
的d.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;
}
在我看来,类型定义是正确的,那么我做错了什么,这会使类型记录认为IMap
类型没有构造函数?
发布于 2017-09-01 02:46:38
参数中的Map
是IMap
类型的实例。如果要将其作为构造函数键入,则将其键入为typeof IMap
。
bar (Map: typeof IMap) {
const map = new Map();
}
https://stackoverflow.com/questions/45990638
复制相似问题