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

如何在TypeScript中检测mysql模块的版本并完成版本判断

TypeScript 检测 mysql 模块版本的实现方案

原代码问题

你写的代码无法正常运行,因为 mysql 模块的默认导出对象没有暴露 version 字段,运行时读取 mysql.version 会得到 undefined,判断条件永远不会触发。

可落地的实现方法

方案1:读取模块自带的 package.json(最准确,推荐使用)

直接读取 mysql 模块内置的 package.json 文件获取版本号,无需额外依赖:

// TS 4.5 及以上版本支持导入断言的写法
import mysqlPkg from 'mysql/package.json' assert { type: 'json' };

if (mysqlPkg.version === '2.18.1') {
  // 版本匹配后的业务逻辑
}

如果 TS 编译时报错,需要在 tsconfig.json 的 compilerOptions 中新增两个配置:

{
  "resolveJsonModule": true,
  "allowSyntheticDefaultImports": true
}

如果你用的 TS 版本低于4.5,不支持导入断言,可以改用 require 写法:

const mysqlPkg = require('mysql/package.json');

if (mysqlPkg.version === '2.18.1') {
  // 版本匹配后的业务逻辑
}

方案2:特性检测(仅特殊场景备选)

如果不方便读取 package.json,也可以通过判断 2.18.1 版本独有的 API、参数特性来间接识别版本,准确性低于直接读取版本号,非必要不推荐使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:54:03