首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误“不能对缺少调用或构造签名的表达式使用'new‘。”导入Esri类型时

错误“不能对缺少调用或构造签名的表达式使用'new‘。”导入Esri类型时
EN

Stack Overflow用户
提问于 2017-08-31 21:55:42
回答 1查看 2.9K关注 0票数 3

我觉得这里有很简单的东西。我已经构建了一个使用Esri ArcGIS API构建的类,但是当我从arcgis-js-apid.ts文件导入类型定义时,我得到的类型记录错误“不能对类型没有调用或构造签名的表达式使用'new‘。”

例如:

代码语言:javascript
运行
复制
import * as IMap from 'esri/Map';

export class Foo {
    bar: (Map: IMap) {
        const map = new Map(); // <-- error here
    }
}

来自d.ts文件的相关片段:

代码语言:javascript
运行
复制
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类型没有构造函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-01 02:46:38

参数中的MapIMap类型的实例。如果要将其作为构造函数键入,则将其键入为typeof IMap

代码语言:javascript
运行
复制
bar (Map: typeof IMap) {
    const map = new Map(); 
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45990638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档