首页 > 解决方案 > 在 TypeScript 中,如何修改第三方接口?

问题描述

目前,我正在使用以下GridOptions界面:

https://github.com/ag-grid/ag-grid/blob/f065d96ee682d4c43a7275f35935d122d9faeee6/packages/ag-grid-community/dist/lib/entities/gridOptions.d.ts

根据 API:

https://www.ag-grid.com/javascript-grid-events/

onFirstDataRendered应该存在于接口上,但它不存在。

在我的代码中,我使用的接口如下:

import { GridOptions } from "ag-grid/main";
private gridOptions: GridOptions = <GridOptions>{};

如何修改界面以使其onFirstDataRendered可用?

编辑:

API 页面有以下注释:

This is done by prefixing the event name with 'on', for instance gridOptions.onCellClicked.

例如,您可以看到gridReady在 API 中转换为onGridReady以下代码:

https://github.com/ag-grid/ag-grid/blob/f065d96ee682d4c43a7275f35935d122d9faeee6/packages/ag-grid-community/dist/lib/entities/gridOptions.d.ts

标签: typescriptinterfaceag-grid

解决方案


尝试“firstDataRendered”而不是“onFirstDataRendered”?

编辑:

唔。似乎他们有一些错误,因为“onFirstDataRendered”和“firstDataRendered”都没有出现在GridOptions界面中,不像他们在这里承诺的“所有这些网格事件都可以通过GridOptions界面获得”。

顺便说一句,您可以在此处查看事件常量,让您的生活更轻松(至少您不会错误输入事件名称)。

为了扩展接口,你必须这样做:

private gridOptions: GridOptions & {onFirstDataRendered: any} = {}; // "any" because i don't know what type the value should have. I removed the type guard (<GridOptions>) because it is redundant, moreover typeguards are deprecated in favor of "as GridOptions" syntax.

PS,是的,另一个人说这是一个新功能。但是它是在 npm (v.19.0.0) 上发布的。但它似乎有问题(不在界面中)。您应该在他们的 github 存储库中创建一个关于此的问题。


推荐阅读