@deckgl-fiber-renderer/types

中文文档
2.0.1发布于 2026/05/26MITTypeScriptES Module零依赖近 30 天下载 3.6万

自动包含 @ deckgl-fiber-resters/dom (英语)。 。 。 . 无需单独安装.

中文使用文档
文档目录11 节
  1. 安装
  2. How-to: 类型安全存取器函数
  3. How-to: 自定义层类型(可选)
  4. 参考:JSX元素类型
  5. <layer> 元素
  6. <view> 元素
  7. 折旧层元素
  8. 类型脚本配置
  9. 需要的编译器选项
  10. 建议选项
  11. 相关软件包

@ deckgl-fiber-landers/ 类型

自动包含 @ deckgl-fiber-resters/dom (英语)。 。 。 . 无需单独安装.

TypeScript定义了甲板.gl JSX元素. 提供类型安全地层创建,带有通用类型参数和IntelliSense.

安装

pnpm add @deckgl-fiber-renderer/types

自动安装 @deckgl-fiber-renderer/dom。只有在使用调和器独立时才直接安装.


How-to: 类型安全存取器函数

问题: Accessor 函数参数为 any - 没有自动完成,没有类型安全.

<layer
  layer={
    new ScatterplotLayer({
      id: "points",
      data: myData,
      getPosition: (d) => d.coordinates, // d is 'any'
      getRadius: (d) => d.value, // d is 'any'
    })
  }
/>

解决方案 : 通过数据类型作为通用参数.

type DataPoint = {
  coordinates: [number, number];
  value: number;
  color: [number, number, number];
};

<layer
  layer={
    new ScatterplotLayer<DataPoint>({
      id: "points",
      data: myData,
      getPosition: (d) => d.coordinates, // d is DataPoint ✅
      getRadius: (d) => d.value, // Full autocomplete ✅
      getFillColor: (d) => d.color, // Type errors on typos ✅
    })
  }
/>;

福利:

  • IntelliSense 显示可用的属性
  • TypeScript 捕获打字和类型不匹配
  • 重命名连接器函数之间的重构工作
  • 类型作为内部文件

How-to: 自定义层类型(可选)

自定义层工作 <layer> 没有类型的声明。 扩展 IntrinsicElements 如果你想要一个专门的JSX元素.

建议的办法(无声明):

import { CompositeLayer } from "@deck.gl/core";

class CustomLayer extends CompositeLayer<{ customRadius: number }> {
  renderLayers() {
    return new ScatterplotLayer({
      id: `${this.props.id}-scatter`,
      data: this.props.data,
      getRadius: this.props.customRadius,
    });
  }
}

// Just works
<layer layer={new CustomLayer({ id: "custom", data, customRadius: 200 })} />;

替代办法(海关要素):

type CustomLayerProps = {
  id: string;
  data: unknown[];
  customRadius: number;
};

declare global {
  namespace React.JSX {
    interface IntrinsicElements {
      customLayer: CustomLayerProps;
    }
  }
}

// Now type-checked (but <layer> is recommended)
<customLayer id="custom" data={data} customRadius={200} />;

参考:JSX元素类型

<layer> 元素

通用地层元素接受任意甲板.gl地层实例.

import { ScatterplotLayer, PathLayer } from "@deck.gl/layers";

<layer layer={new ScatterplotLayer({ id: "points", data })} />;
<layer layer={new PathLayer({ id: "paths", data })} />;

类型定义 :

interface IntrinsicElements {
  layer: {
    layer: Layer;
    key?: string;
    ref?: React.Ref<Layer>;
  };
}

<view> 元素

通用视图元素接受任何 deck.gl View 实例 .

import { MapView, OrthographicView } from "@deck.gl/core";

<view view={new MapView({ id: "main" })} />;
<view view={new OrthographicView({ id: "minimap" })} />;

类型定义 :

interface IntrinsicElements {
  view: {
    view: View;
    key?: string;
    ref?: React.Ref<View>;
  };
}

折旧层元素

层特有元素(v1 语法)仍然被打入但被标记 @deprecated数字 :

interface IntrinsicElements {
  /** @deprecated Use <layer layer={new ScatterplotLayer(...)} /> instead */
  scatterplotLayer: ScatterplotLayerProps;

  /** @deprecated Use <layer layer={new PathLayer(...)} /> instead */
  pathLayer: PathLayerProps;

  // ... other deprecated elements
}

TypeScript 使用这些元素时显示折旧警告.


类型脚本配置

需要的编译器选项

{
  "compilerOptions": {
    "jsx": "react-jsx",
    "moduleResolution": "bundler",
    "types": ["@deckgl-fiber-renderer/types"]
  }
}

最佳经验:

{
  "compilerOptions": {
    "strict": true,
    "noUncheckedIndexedAccess": true,
    "exactOptionalPropertyTypes": true
  }
}

这些抓取更多的类型错误并改进访问器函数类型.


版本与发布记录

@deckgl-fiber-renderer/types 共发布 8 个版本,首次发布于 2025/03/14;过去 12 个月发布了 2 个版本。

版本发布日期距今
2.0.1latest2026/05/265 个月前
2.0.02026/04/226 个月前
1.4.02025/05/091.5 年前
1.3.02025/03/191.6 年前
1.2.02025/03/181.7 年前
1.1.12025/03/181.7 年前

关于 @deckgl-fiber-renderer/types 的常见问题

@deckgl-fiber-renderer/types 是什么?

自动包含 @ deckgl-fiber-resters/dom (英语)。 。 。 . 无需单独安装.

如何安装 @deckgl-fiber-renderer/types?

在项目目录运行 npm install @deckgl-fiber-renderer/types,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deck.gl/core(>=9.1)、@deck.gl/geo-layers(>=9.1)、@deck.gl/layers(>=9.1)、@deck.gl/mapbox(>=9.1)、@deck.gl/mesh-layers(>=9.1)、@types/react(^19)、@types/react-dom(^19)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@deckgl-fiber-renderer/types 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@deckgl-fiber-renderer/types 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@deckgl-fiber-renderer/types 可以商用吗?

@deckgl-fiber-renderer/types 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@deckgl-fiber-renderer/types 的下载量有多少?

根据 npm 官方下载统计,@deckgl-fiber-renderer/types 在 2026/10/12 – 2026/11/10 这 30 天内被下载 36,067 次,日均约 1,202 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@deckgl-fiber-renderer/types 还在维护吗?

最新版本 2.0.1 发布于 2026/05/26(5 个月前);至今共发布 8 个版本,其中过去 12 个月发布了 2 个;首次发布于 2025/03/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。