gpt4 book ai didi

typescript - 我可以在 ag-Grid 中使用异步值 setter 吗(TypeScript 错误)?

转载 作者:行者123 更新时间:2023-12-03 13:40:37 26 4
gpt4 key购买 nike

我正在使用带有 TypeScript 的 ag-Grid 并尝试创建一个异步 value setter在我的列定义中。

const columnDefs: ColDef[] = [
{
headerName: 'Name',
field: 'name',
editable: true,
valueSetter: async (params: ValueSetterParams): Promise<boolean> => {
return await doSomething(params); // Will return the change boolean
}
},
//...other columns

但是 TypeScript 提示不支持此签名,因为 colDef.d.ts定义文件有

valueSetter?: ((params: ValueSetterParams) => boolean) | string;

但是,如果我只使用 // @ts-ignore要忽略 TypeScript 错误,它似乎是在尊重 await我的代码以正确的顺序执行。

这只是 TypeScript 定义文件的问题吗?还是 ag-Grid 不支持异步值 setter ?

一些环境信息:
  • ag-Grid 22.1.0
  • typescript 3.7.2
  • Aurelia(使用 WebPack、npm 等)
  • WebStorm 2019.3.1
  • 最佳答案

    Ag-grid 不为此提供支持,但您仍然可以完成它。您仍然必须返回一个 bool 值,而不是返回 promise 。然后你必须在 promise 返回后手动刷新单元格:

    valueSetter: (params: ValueSetterParams) => {
    doSomething(params).then(function() {
    params.api.refreshCells({
    rowNodes: [params.node],
    columns: [params.column]
    });
    });
    return false;
    }
    这是一个例子,我只使用 setTimeout模拟异步操作: https://stackblitz.com/edit/ag-grid-typescript-async-value-setter?file=src/main.ts

    关于typescript - 我可以在 ag-Grid 中使用异步值 setter 吗(TypeScript 错误)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59665050/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com