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

TypeScript导入模块报ERR_MODULE_NOT_FOUND错误如何排查解决

错误原因

你的写法存在两个核心问题:

  • export declare module 是TypeScript的环境类型声明语法,仅用于给TS编译器提供类型校验的元信息,编译后会被完全擦除,不会生成任何可被导入的运行时代码,相当于你只写了类型注释,根本没有导出真实存在的FontList值。
  • declare module 语法的设计用途是描述外部引入的非TS模块的类型形状,不是用来在当前TS文件内定义可导出的实体对象/模块的,你当前写的newTSFile.ts编译后输出的JS是空内容,导入时自然找不到对应导出项。
修复方法

如果你的目标是构建带类型提示的静态查找表,直接导出实际的常量值即可,TS会自动推导对应类型,不需要用declare语法。
修改newTSFile.ts代码如下:

export const FontList = {
  DEFAULT_DATA: {
    james: {
      age: '23'
    },
    jack: {
      age: '22'
    }
  }
} as const;

末尾加as const可以让TS推导出精确的字面量类型,更适合静态查找表的使用场景,避免类型被放宽为通用string。

原有主文件的导入写法不需要修改,即可正常运行:

import { FontList } from './newTSFile';

console.log("font list: ", FontList);

补充说明:如果你原本的需求是单独编写类型声明文件(.d.ts后缀),那必须额外对应编写实际的运行时代码实现,所有带declare关键字的代码都不会产生可执行的JS内容,不能直接作为运行时导入的模块使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:42:27