2017-08-31 5 views
1

私がここで紛失している何かが本当にシンプルであるように感じる。私は、Esri ArcGIS APIを使用して構築しているクラスを持っていますが、arcgis-js-apiのファイルからタイプ定義をインポートすると、タイプコードエラーが発生します。署名や署名を行うことができます。エラー "型がコールを持たないか、または署名を構成する式で 'new'を使用することはできません。 Esriタイプをインポートするとき

例:活字体がいることを考えさせるだろう、そのタイプの定義が私には正しいですので、私は間違って何をやっているよう

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; 
} 

が見える:d.tsファイルから

import * as IMap from 'esri/Map'; 

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

関連するスニペットIMapタイプにコンストラクタがありませんか?

答えて

3

あなたのパラメータにMapIMap型のインスタンスです。あなたの代わりにコンストラクタとして、それを入力したい場合は、typeof IMapとして、それを入力します。

bar (Map: typeof IMap) { 
    const map = new Map(); 
} 
+1

*手のひらを顔に当てる*私はそれは、単純な何かを知っていました – asgallant

関連する問題