对 s3.selectObjectContent 使用 AWS SDK (JS) 在 'on' 关键字上出现错误

Using AWS SDK (JS) for s3.selectObjectContent gives error on 'on' keyword

我在 Node.JS.

的 Typescript 文件中使用 AWS SDK Javascript 版本 2.730.0(撰写本文时的最新版本)

我正在使用 selectObjectContent 操作来查询 CSV 文件,并且按照文档中的 guide 我有这个块:

import * as S3 from 'aws-sdk/clients/s3';
const s3 = new S3();

...

s3.selectObjectContent(params, (err, data) => {
   if (!err){
      data.Payload.on('data', (event) => {

         // Do something with returned records

      });
   }
});

data.Payload.on('data', (event) => { 行在 linter 中给出了这个错误:

Property 'on' does not exist on type 'EventStream<{ Records?: RecordsEvent; Stats?: StatsEvent; Progress?: ProgressEvent; Cont?: ContinuationEvent; End?: EndEvent; }>'.

我需要更改什么才能使 on 正常工作?

我运行自己遇到了同样的问题。在另一个论坛上发现了这个问题post:

https://www.gitmemory.com/issue/aws/aws-sdk-js/3525/725076849

它没有明确显示解决问题的代码,但根据信息,我解决了如下问题:

import { ReadStream } from "fs";
const eventStream = data.Payload as ReadStream;
eventStream.on("data", ({ Records, Stats, Progress, Cont, End }: ...

TypeScript 不再抱怨。