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

为什么我的TS代码中出现了TS80005错误?

为什么我的TS代码中出现了TS80005错误?

嘿,我仔细扒了你的代码和配置,找到了触发TS80005错误以及相关问题的根源,咱们一步步来理清楚:

问题1:类型不匹配触发的核心错误

你在utils.ts里定义的sqrtRoot函数明确要求参数是number类型,但在index.ts中却传入了字符串"asd"。再加上你在tsconfig.json里开了strict: true严格类型检查模式,TypeScript直接就抛出了类型错误,而TS80005就是这类类型问题衍生的提示之一。

解决办法:
确保传入sqrtRoot的参数是数字类型,比如改成:

console.log(utils.sqrtRoot(9)); // 传入合法数字,而非字符串

问题2:模块导入导出的语法混用

虽然你当前用的是CommonJS的require和module.exports,但在TypeScript项目里,更推荐用ES模块的import/export语法——这能让TS更好地做类型推断,也能避免不少模块系统相关的奇怪错误(包括你遇到的TS80005)。

修改后的代码示例:

  • utils.ts改用ES导出:
export function sqrtRoot(x: number): number {
  return Math.sqrt(x);
}
  • index.ts改用ES导入:
import { sqrtRoot } from "./utils";

console.log(sqrtRoot(9));

额外的配置小提醒

你的tsconfig.json配置本身是没问题的,target: es2016搭配module: commonjs的组合能让TS正确编译成CommonJS模块,只是导入时可以省略.ts扩展名,TS会自动识别。

按照上面的修改,你的代码就能顺利通过TS的类型检查,TS80005错误也会消失啦!

备注:内容来源于stack exchange,提问作者Kishan Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 14:59:51