mapbox 图层的正确类型(打字稿)在哪里?

Rum*_*nsk 1 mapbox typescript reactjs

用一个例子来解释更简单。看看这段代码:

const network:any = this.props.network;

    this.map.addLayer({
      id: "route",
      type: "line",
      source: {
        type: "geojson",
        data: network
      },
      layout: {
        "line-join": "round",
        "line-cap": "round"
      },
      paint: {
        "line-color": "red",
        "line-width": 2
      }
    });
Run Code Online (Sandbox Code Playgroud)

this.props.network 设置在其他地方,代码类似于:

const response = await fetch("http://localhost:5000/network");
this.props.network = await response.json();
Run Code Online (Sandbox Code Playgroud)

此代码按 expexted 工作。但我想正确设置 te type 以this.props.network删除any解决方法。network是一个有效的 geojson 对象,VS 代码向我展示了这个提示:

在此处输入图片说明

所以我猜正确的类型是: FeatureCollection<Geometry, GeoJsonProperties>

但我不知道在哪里定义了这些类型以及我必须导入的内容;

r3d*_*0rm 5

您要查找的导入位于geojson包内。因此导入看起来像:

import { FeatureCollection, Geometry, GeoJsonProperties } from "geojson";
Run Code Online (Sandbox Code Playgroud)

如果查看 的类型定义文件mapbox-gl,可以看到,geojson这里引用了类型:Mapbox-GL .d.ts 文件