0

我的组件中有一个标准componentDidCatch,其类型如下所示,并从内部调用外部 Logging 库:

  componentDidCatch(error: Error, info: React.ErrorInfo) {
    Logger.logErrorMessage(error.message, info);
  }

然而,第 3 方日志库logErrorMessage函数的类型如下:

type ArbitraryValue = undefined | string | number | boolean | ArbitraryObject;

interface ArbitraryObject {
  [p: string]: ArbitraryValue;
}

...


logErrorMessage(message: string, info: ArbitraryObject): void;

TS 错误消息显示如下

.../ErrorBoundary.tsx:38:82 - error TS2345: Argument of type 'ErrorInfo' is not assignable to parameter of type 'ArbitraryObject'.
  Index signature is missing in type 'ErrorInfo'.

38     Logger.logErrorMessage(error, info);
                                     ~~~~

让我info的 componentDidCatch 参数遵守 logErrorMessage 的 ArbitraryObject 接口的最佳方法是什么?最好无需更改 Logger 库源。

4

0 回答 0