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

TypeScript中AJV实例化报错TS2351的问题求助

解决TypeScript + AJV构造函数报错问题

问题分析

你碰到的TS2351错误,核心原因是在Node16模块解析模式下,TypeScript对CommonJS模块的导入规则更严格——AJV作为CommonJS模块,其默认导出的构造函数无法直接通过new Ajv()调用。

解决方案

方案1:调整导入写法

改用以下方式明确获取AJV的默认导出并实例化:

import * as AjvModule from "ajv";
const Ajv = AjvModule.default;
const ajv = new Ajv({ allErrors: true });

方案2:简化的命名导入

也可以直接通过命名导入的方式获取默认导出:

import { default as Ajv } from "ajv";
const ajv = new Ajv({ allErrors: true });

方案3:更新AJV到最新版

旧版本AJV的TypeScript类型定义可能存在兼容瑕疵,执行命令更新到最新版:

npm install ajv@latest --save

更新后再尝试你原来的导入写法,大概率能直接解决问题。

方案4:调整tsconfig配置(可选)

如果想保留原导入方式,可以修改tsconfig.json的模块相关配置,切换到更适合现代打包工具的解析规则:

"module": "ESNext",
"moduleResolution": "Bundler"

验证

修改完成后重新执行TypeScript编译命令:

tsc

若没有报错,说明问题已解决。

内容的提问来源于stack exchange,提问作者Kripu Khadka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:41:33