2016-04-22 14 views
6

ben daktilo GeoJSON kullanmayı deneyin ama derleyici bu iki değişken için hata atıyor: Generic type 'Feature<T>' requires 1 type argument(s)"Generic type" Feature <T> 'ifadesinin anlamı, Typecript içinde 1 tür argüman (lar) gerektirir?

const pos = <GeoJSON.Feature>{ 
    "type": "Feature", 
    "geometry": { 
     "type": "Point", 
     "coordinates": [0, 1] 
    } 
    }; 

    const oldPos = <GeoJSON.Feature>{ 
    "type": "Feature", 
    "geometry": { 
     "type": "Point", 
     "coordinates": [2, 4] 
    } 
    }; 

bu da ne demek olduğunu?

+0

deneyin > –

cevap

3

Özelliği arayüzü bir parametre gerektirir:

const pos = <GeoJSON.Feature<GeoJSON.GeometryObject>>{ 
    "type": "Feature", 
    "properties":{}, 
    "geometry": { 
     "type": "Point", 
     "coordinates": [0, 1] 
    } 
    }; 

Ve belki bir yardımcı türü tanıtmak ve size ettik sağlamaya yardımcı olur yerine döküm pos üzerinde türünü ayarlayın:

export interface Feature<T extends GeometryObject> extends GeoJsonObject 
{ 
    geometry: T; 
    properties: any; 
    id?: string; 
} 

bu deneyin

type GeoGeom = GeoJSON.Feature<GeoJSON.GeometryObject>; 
const pos: GeoGeom = { 
    type: "Feature", 
    properties: "foo", 
    geometry: { 
     type: "Point", 
     coordinates: [0, 1] 
    } 
}; 
+0

üzgün: gereklidir 'özellikleri' özelliğini ayarlamak Geç cevap için, ama evet gerçekten işe yarıyor. "Bunu deneyin" ifadesinin ardından "bloklar": {} kod satırına "ekleyebilirsiniz". Bu şekilde geçerli değildir, "properties" özelliği eksik. Teşekkürler ! – dagatsoin

İlgili konular