如何正确为DynamoDBDocumentClient添加TypeScript类型?
问题
创建DynamoDBDocumentClient时触发TypeScript ESLint错误:Unsafe assignment of an any value,代码示例如下:
import { DynamoDBClient } from "@aws-sdk/client-dynamodb" import { DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb" const client = new DynamoDBClient({}) const ddbDocClient = DynamoDBDocumentClient.from(client) // 此处报错:Unsafe assignment of an `any` value
我的ESLint配置片段:
//... overrides: [ { extends: [ // "plugin:@typescript-eslint/recommended",//<-- 启用此规则时不会出现上述错误 "plugin:@typescript-eslint/recommended-requiring-type-checking", ], files: ["*.ts", "*.tsx"], parserOptions: { project: "tsconfig.json", }, }, ] //...
解决方法
显式指定变量类型
直接为ddbDocClient声明DynamoDBDocumentClient类型,明确类型后即可消除ESLint的any值警告:
import { DynamoDBClient } from "@aws-sdk/client-dynamodb" import { DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb" const client = new DynamoDBClient({}) const ddbDocClient: DynamoDBDocumentClient = DynamoDBDocumentClient.from(client)
统一AWS SDK包版本
确保@aws-sdk/client-dynamodb和@aws-sdk/lib-dynamodb的版本一致,版本不匹配可能导致类型推断异常。执行以下命令升级到最新稳定版:
npm install @aws-sdk/client-dynamodb@latest @aws-sdk/lib-dynamodb@latest
调整ESLint规则(不推荐)
如果不想显式指定类型,可在ESLint配置中为该方法添加规则例外,但这会降低类型检查的严谨性:
修改ESLint配置的overrides部分,添加rules字段:
//... overrides: [ { extends: [ "plugin:@typescript-eslint/recommended-requiring-type-checking", ], files: ["*.ts", "*.tsx"], parserOptions: { project: "tsconfig.json", }, rules: { "@typescript-eslint/no-unsafe-assignment": ["error", { "allow": ["DynamoDBDocumentClient.from"] }] } }, ] //...
内容的提问来源于stack exchange,提问作者WindCheck
相关产品推荐
相关产品推荐

