如何自定义 Sentry 传输?

How do I customise the Sentry transport?

使用 "@sentry/browser": "5.30.0".

如何配置 Sentry 以便自定义 Sentry 发送的消息?

我对文档的阅读是 transport 属性 旨在允许这样做,但我无法弄清楚我应该作为参数传递什么。

Sentry.init({
  dsn: '...',
  autoSessionTracking: false,
  transport: (options: TransportOptions)=>{
    return new MyFetchTransport(options);
  },
});

class MyFetchTransport extends FetchTransport {
  constructor(options: TransportOptions){
    super(options);
  }

  sendEvent(event: Event): PromiseLike<Response>{
    return super.sendEvent(event);
  }

  sendSession(session: Session): PromiseLike<Response>{
    return super.sendSession(session);
  }
}

以上给出了 Typescript 错误:

Type '(options: TransportOptions) => MyFetchTransport' is not assignable to type 'TransportClass<Transport>'.
  Type '(options: TransportOptions) => MyFetchTransport' provides no match for the signature 'new (options: TransportOptions): Transport'.  TS2322

如果我想自定义 Sentry 发送消息的方式,init 调用应该是什么样的?

在 Sentry 文档中找到 exampleinit() 调用应该如下所示:

Sentry.init({
  dsn: '...',
  autoSessionTracking: false,
  transport: MyFetchTransport,
});