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

如何让自定义require函数在TypeScript中具备正常类型推断能力?

解决自定义require函数被TypeScript识别为CommonJS导入函数的问题

直接在自定义require函数的JSDoc注解里明确指定完整的函数类型签名,就能让TypeScript把它当成普通函数处理,不再触发模块查找逻辑:

/**
 * @type {(name: string) => number}
 */
function require(name) {
  // 你的自定义实现逻辑
  return parseInt(name, 10);
}

// 现在调用不会报错,且TypeScript能自动推断返回值为number
const num = require("123");

原理是:TypeScript默认会把名为require的函数关联到CommonJS的模块导入函数类型,而通过@type直接给函数绑定具体的类型签名,会让TypeScript优先使用这个自定义类型,完全覆盖默认的模块导入函数逻辑,自然就不会再抛出“找不到模块”的错误,同时保留正常的类型推断能力。

如果需要更清晰的类型复用,也可以先定义类型别名再绑定:

/**
 * @typedef {function(string): number} CustomRequireFn
 */

/**
 * @type {CustomRequireFn}
 */
function require(name) {
  return name.length;
}

内容的提问来源于stack exchange,提问作者Adrien LESÉNCHAL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:07:03