我对TypeScrip非常陌生,所以可能我忽略了一些明显的东西,但我无法在不触发似乎完全是虚假的@Typescript-eslint警告的情况下使用AWS v3 Java脚本SDK.下面是一个小片段,它再现了一个不一致的地方:

import { S3Client } from "@aws-sdk/client-s3";
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
new S3Client({});
new DynamoDBClient({});

S3客户端构造很好.没有警告. 但是,构建DynamoDB客户端的最后一行的结果是ESLint: Unsafe construction of an any type value.(@typescript-eslint/no-unsafe-call)

这基本上直接从他们的"Hello DynamoDB"文档中脱颖而出.

这两个包都已安装,并且类型看起来基本相同,尽管我想可能在配置类型的细节中隐藏了一些微妙之处(为了清楚起见,稍微简化了一些):

export declare class S3Client extends __Client<__HttpHandlerOptions, ServiceInputTypes, ServiceOutputTypes, S3ClientResolvedConfig> {
    readonly config: S3ClientResolvedConfig;
    constructor(configuration: S3ClientConfig);
}

VS

export declare class DynamoDBClient extends __Client<__HttpHandlerOptions, ServiceInputTypes, ServiceOutputTypes, DynamoDBClientResolvedConfig> {
    readonly config: DynamoDBClientResolvedConfig;
    constructor(configuration: DynamoDBClientConfig);
}

它们看起来基本一样.如何将构造函数视为返回any?这太奇怪了.

我的package.json包含:

  "dependencies": {
    "@aws-sdk/client-dynamodb": "^3.351.0",
    "@aws-sdk/client-s3": "^3.282.0",
...

推荐答案

这似乎是一个构建/工具缓存问题.如果我从命令行运行eslint,我没有收到任何错误,但在WebStorm 2022.3.2中,eslint警告每new DynamoDBClient()次就会持续一次,即使我完全清除该行并重新键入、添加第二个副本、更改参数、将代码粘贴到同一项目中的新文件等.

我能够通过做File > Invalidate Caches... > Just Restart来清除虚假警告.也许定期重启也足够了.

重现(对于WebStorm)似乎是引用启用了eslint工具的类,然后再执行npm install个相关的包.那么错误就是粘性的even after installing the package.我不确定这是定义之前eslint的一个普遍问题(我想很多人都会遇到这个问题!),或者是不是AWS代码的复杂性引发了这个问题.

把这个问题留下来,以防其他使用WebStorm的人遇到同样的问题!

Node.js相关问答推荐

我的位置也移动时左右拖动谷歌 map

当建议在第二代上运行云功能时,现在是否有新的Firestore AdminClient可供使用?

编辑Mongoose中的对象嵌套数组

GitLab SAST中的Nodejcan未找到匹配项

Mongoose查询-如何根据当前查找ID获取其他集合并将其插入到当前查找中?

无法使用Sequelize连接AWS RDS

模块';"; node :流程&没有导出的成员';dlopen';

如何从基于JSON的HTML/SCSS模板生成PDF?

使用AWS SDK for JavaScript V3将图像从node.js上传到s3 bucket

如何修复我的 NodeJS SSE 写入函数以在后续调用中更新 HTML?

nyc 代码覆盖不适用于 NodeJs Express 服务器

错误 node :错误:绑定消息提供 16 个参数,但准备语句需要 15 个

如何在 NestJS 中使用外部生成的 swagger.json?

Node.js |如何在微服务之间转发标头?

GridFS 大文件下载使 Node.js 服务器崩溃. MongoServerError:排序超出了字节的内存限制

Firestore promise 在退货前等待产品详细信息

适用于 Windows 的 NVM 无法正常工作?

AWS Lambda 函数写入 S3

为什么 Node.js 没有原生 DOM?

用于轻松部署和更新的 Node.js 设置