You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:17:37